www.mikrocontroller.net

Forum: Codesammlung Countdown timer für UV Belichter


Autor: Ferrice (Gast)
Datum:
Angehängte Dateien:

Hallo Leute!

Habe einen Countdown Timer für einen UV Belichter gebaut.

Eine kleine Platine mit einem ATMEGA48 und ein bisschen peripherer
Hardware.
Ein- bzw. Ausgeschalten wird der Belichter über ein Relay.

3 Taster dienen zur Steuerung des Timers:
+ Taste für Minuten
+ Taste für Sekunden
Start/Stop Taste

wird die + Taste für Minuten und die + Taste für Sekunden gleichzeitig
gedrückt
so wird der Timer auf 0 gesetzt.

der letzte Wert wird im EEPROM verspeichert und beim nächsten mal als
Timerzeit vorgeschlagen.

Falls jemand die Eagle files dafür haben möchte.
Bitte per mail Anfragen -> schicke sie euch zu.

Ich freue mich hier meine Schaltung und den Sourcecode posten zu
dürfen.
Ich Garantiere nicht das der Code 100%ig sauber geschrieben ist und ich
weiß das man auch noch einiges vereinfachen könnte.
"ES IST NOCH NIE EIN MEIßTER VOM HIMMEL GEFALLEN"
An Verbesserungsvorschlägen bin ich immer interresiert.

Falls jemand genauere Details zu den verwendeten Bauteilen braucht ->
einfach Posten.

Platinen sind es 2 Stück
Eine Hauptplatine
und eine Platine mit den 7 segment Displays

die Hautplatine wird an 220V angeklemmt
(Sicherheitsvorkehrungen beachten)
die 7segment Anzeigen sind Lowpower Anzeigen und können direkt vom Port
getrieben werden.
Autor: Ferrice (Gast)
Datum:

und übrigends:

die Sourcen sind in C geschrieben und können mit dem neuesten WINAVR
bearbeitet und ggf. neu Compiliert werden.

schöne grüße
Ferrice
Autor: Daniel Arnold (stadafarma)
Datum:

Hallo Ferrice,

Ich (als Anfänger) habe Probleme Deine Datei auf einen Atmega zu
brennen. Ich denke mal, das hier etwas grundsätzliches falsch ist. Ich
benutze das Prog. myAvr Workpad. Wenn ich auf brenen gehe, taucht die
Fehlermeldung



-------------------------------------------------------------------------
compilieren ...  In file included  from timeruv.c:4:

signal.h:36  36:2: warning: #warning "This header file is obsolete. Use
."
timeruv.c:8  8:1: warning: "SIG_OUTPUT_COMPARE1A" redefined
 In file included  from
C:/Programme/myAvrWorkpad/WinAVR/avr/include/avr/io.h:256,

from C:/Programme/myAvrWorkpad/WinAVR/avr/include/define.h:1,
from timeruv.c:1:
iom8.h:188  188:1: warning: this is the location of the previous
definition
timeruv.c:9  9:1: warning: "SIG_OUTPUT_COMPARE1B" redefined
iom8.h:192  192:1: warning: this is the location of the previous
definition
timeruv.c  In function `main':
timeruv.c:75  75: error: `TIMSK0' undeclared (first use in this
function)
 75: error: (Each undeclared identifier is reported only once
 75: error: for each function it appears in.)
 75: error: `OCIE0A' undeclared (first use in this function)
timeruv.c:76  76: error: `OCR0A' undeclared (first use in this function)
timeruv.c:77  77: error: `TCCR0B' undeclared (first use in this
function)
timeruv.c:81  81: error: `TIMSK1' undeclared (first use in this
function)
timeruv.c:65  65: warning: return type of 'main' is not `int'
io.h:256  256,
from C:/Programme/myAvrWorkpad/WinAVR/avr/include/define.h:1,
from timeruv.c:1:
iom8.h:188  188:1: warning: this is the location of the previous
definition
timeruv.c:9  9:1: warning: "SIG_OUTPUT_COMPARE1B" redefined
iom8.h:192  192:1: warning: this is the location of the previous
definition
timeruv.c  In function `main':
timeruv.c:75  75: error: `TIMSK0' undeclared (first use in this
function)
 75: error: (Each undeclared identifier is reported only once
 75: error: for each function it appears in.)
-------------------------------------------------------------------------
auf. Und das war nur den Anfang. Er hat also Probleme beim Compilieren.
Aber was möchte er mir damit sagen?

Fällt Dir da was drauf ein?

Gruß
Daniel
Autor: Gerd G. (elektrikser)
Datum:

Hallo,

mir fällt da etwas auf.
In der neusten WinAVR-Version ist die signal.h als deprecated, d.h.
veraltet eingestuft. Dafür nimmt man die interrupt.h.
Man muß die Interruptvektoren nicht definieren. Das ist überflüssig.
Dafür band man früher die signal.h ein und jetzt die interrupt.h mit den
passenden Vektoren. Einfach in der Doku der avrlib nachsehen.
Autor: Daniel Arnold (stadafarma)
Datum:

Hallo.

Wenn man die Schaltbilder richtig gelesen hätte, dann wäre einem
aufgefallen, das nicht der Atmega8 sondern der Atmega 48 verbaut wurde.
Wenn ich die Datei nun compiliere,dann bringt er zwar noch Hinweise
------------------------------------------------------------------
compilieren ...  In file included  from timeruv.c:4:

signal.h:36  36:2: warning: #warning "This header file is obsolete. Use
."
timeruv.c  In function `main':
timeruv.c:65  65: warning: return type of 'main' is not `int'
linken ...
-------------------------------------------------------------------
raus, aber sieht sost ganz gut aus. Habe mir gerade noch mal Bauteile
Bestellt, und werde es dann noch mal testen. Nun noch eine Frage. Welche
Quarz muss ich da benutzen? Auf dem "main board" Plan steht nur die
Bezeichnung Q1.

Gruß
Daniel
Autor: Gast (Gast)
Datum:

> Wenn man die Schaltbilder richtig gelesen hätte, dann wäre einem
> aufgefallen, das nicht der Atmega8 sondern der Atmega 48 verbaut wurde.

Wie der OP schon schrieb:
> Eine kleine Platine mit einem ATMEGA48 ...
Autor: Bernd (Gast)
Datum:

Hallo,
wie sieht es denn so mit der Störunterdrückung aus. Was passiert, wenn
der Timer läuft und ein Stötimpuls aus dem Netz kommt in die Schaltung.
Ist die Software danach überprüft worden?
Gruss bernd
Autor: Elektrikser (Gast)
Datum:

Hallo,

wenn man das Makefile gelesen hätte, würde man folgendes zu Thema Quarz
lesen:
F_OSC = 4194000
;-P

Gruß Elektrikser
Autor: Daniel Arnold (stadafarma)
Datum:

Hallo Elektrikser,

Ich befasse mich seid 5 Tagen mit µC und Assembler. Den Hinweis habe ich
aber bislang noch in keiner DOKU gefunden.

Durch solche Fehler kann ich nur lernen. Schönen Dank für die Info.

Gruß
Daniel
Autor: Gerd G. (elektrikser)
Datum:

Ich weiß, jeder Anfang ist schwer, aber ich konnte es mir nicht
verkneifen.;-)
Die Taktfrequenz und der Controllertyp wird sehr oft in dem Makefile
angegeben. Findet man die Taktfrequenz dort nicht, kann es auch irgendwo
in den C-Dateien (oft in der main.h oder main.c) sein.
Aus dem AVR-GCC-Tutorial, das du auf dieser Seite links oben in dem Menü
unter AVR findest (oder
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...
> Taktfrequenz
>
>Neuere Versionen der WinAVR/Mfile Vorlage für Makefiles beinhalten die
>Definition einer Variablen F_CPU (WinAVR 2/2005). Darin wird die >Taktfrequenz
>des Controllers in Hertz eingetragen. Die Definition steht dann im gesamten
>Projekt ebenfalls unter der Bezeichnung F_CPU zur Verfügung (z.B. um daraus
>UART-, SPI- oder ADC-Frequenzeinstellungen abzuleiten).
>
>Die Angabe hat rein "informativen" Charakter, die tatsächliche Taktrate wird
>über den externen Takt (z.B. Quarz) bzw. die Einstellung des internen
>R/C-Oszillators bestimmt. Die Nutzung von F_CPU hat also nur Sinn, wenn die
>Angabe mit dem tatsächlichen Takt übereinstimmt.
>
>Innerhalb neuerer Versionen der avr-libc (ab Version 1.2) wird die Definition
>der Taktfrequenz (F_CPU) zur Berechnung der Wartefunktionen in delay.h genutzt.
>Diese funktionieren nur dann korrekt, wenn F_CPU mit der tatsächlichen
>Taktfrequenz übereinstimmt. F_CPU muss dazu jedoch nicht unbedingt im makefile
>definiert werden.

Ich habe bei meinem ersten Posting zu deinem Posting ja auch nicht
gesehen, dass der Compiler von einem Atmega8 ausging (iom8.h:188  188:1:
warning: this is the location of the previous definition)
Wenn noch Fragen sind einfach melden...

Gruß Elektrikser
Autor: Manfred Müller (manfred-m)
Datum:

Hi ich bin Anfänge und wollte Mal Fragen wie ich vorgehen muss wenn
ich den Timer mit einem Attiny2313 Verwenden möchte.
Danke manni
Autor: Donald D. (donald)
Datum:

Hallo Ferrice,

der Beitrag ist zwar schon was älter, würde mich aber
freuen wenn Dein Angebot bezüglich des eagle Layouts
und weiteren infos noch gilt.

Gruß Donald


..
Autor: jörg (Gast)
Datum:

Donald D. schrieb:
> der Beitrag ist zwar schon was älter, würde mich aber
> freuen wenn Dein Angebot bezüglich des eagle Layouts
> und weiteren infos noch gilt.

Ich habe den http://www.avr-projekte.de/timer.htm und bin zufrieden.
Da ist ein Layout mit bei.
Autor: MaWin (Gast)
Datum:

> Ich habe den http://www.avr-projekte.de/timer.htm und bin zufrieden.
> Da ist ein Layout mit bei.

So schön das Projekt auch gemacht ist,
eigentlich geht es am Thema vorbei.
Wenn man Belichtung steuern will,
sollte man die Lichtmenge zählen, und nicht die Zeit.
Also eine Photodiode (oder ein TSL230 oder so)
und der uC zählt die Lichtmenge,
denn jeder weiss, wie temperaturabhängig gerade
Leuchtstoffröhren ihr Licht aussenden,
in den ersten Minuten kommt fast nichts raus,
und bei kurzen Belichtungszeiten stört schon die
Zeit des flackerns die die Lampen zum zünden brauchen.
Autor: jörg (Gast)
Datum:

MaWin schrieb:
> Wenn man Belichtung steuern will,
> sollte man die Lichtmenge zählen, und nicht die Zeit.
> Also eine Photodiode (oder ein TSL230 oder so)
> und der uC zählt die Lichtmenge,

Das ist in der Praxis absoluter Quatsch.
Jeder der seine Leiterplatten selbst fertigt, wird am anfang eine
Belichtungsreihe anfertigen in dem er unterschiedliche BelichtungsZEITEN
ausprobiert.

Hier z.B ein professionelles Gerät das mit Timer ausgestattet ist.
http://www.tme.eu/katalog_pics/6/f/b/6fbb634cec3cf...
Vielleicht erzählst du mal den Profies von der Fa. ISEL deine Theorie.
Autor: Donald D. (donald)
Datum:

jörg schrieb:
> Ich habe den http://www.avr-projekte.de/timer.htm und bin zufrieden.
> Da ist ein Layout mit bei.

Hallo Jörg,
das habe ich doch, Jürgen hats sogar an meine Zeiten
angepasst siehe "Custom Hex" ganz unten auf der Seite.

Mich interessieren natürlich auch andere Timer, vor allem
welche wo man auch mal selber einiges in Source ändern kann
um etwas zu experimentieren. Nachbauen ist kein Problem,
nur mit dem Programmieren beziehungsweise selber schreiben
der Programme bin ich noch Anfänger. Hoffe aber das sich das
mit der Zeit noch ändern wird.

Gruß Donald


..
Autor: MaWin (Gast)
Datum:

> Das ist in der Praxis absoluter Quatsch.

Erst denken jörg, dann schreiben.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net