mikrocontroller.net

Forum: Projekte & Code Countdown timer für UV Belichter


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

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
> 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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
> 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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
> Das ist in der Praxis absoluter Quatsch.

Erst denken jörg, dann schreiben.

Autor: Heinz S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo, seht euch mal diesen timer an ....

http://hs-ware.de/osc234/product_info.php/cPath/1_...

Autor: Waldemar Heimann (vual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...alles klar :-D

Autor: Mr. Uralt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... tztztz ....
Einen uralten Thread aus dem Grab gezogen um Werbung für den eigenen 
Shop zu machen...

Autor: Eagle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

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
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
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 bestätigst du, die Nutzungsbedingungen anzuerkennen.