PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : binär uhr



mrg
17.04.2006, 13:25
hallo leute.

is zwar off topic aber ich hoffe dennoch hilfe zu bekommen.

ich würd mir gern dieses scharfe teil bauen:

http://www.lelie.de/markus/show.php?thema=6

hab bisher aber nur c-control programmiert.

wird zeit umzusteigen.
also frag ich mich ob mir wohl jemand behilflich sein kann den atmega 8 korrekt zu programmieren.

bittäääää!
das teil würd sich unheimlich gut in meinen PC integrieren lassen.
ich möchts aber UNBEDINGT mit dem atmega machen und nicht vom PC steuern lassen. was noch interessant wäre,das ganue als funkuhr auszulegen.

vielleciht hat ja jemand interesse dran mitzuknoblen.

MfG,Mr.G.

kalledom
17.04.2006, 13:35
Hallo mrg,
wenn Du einen Controller mit 3 x 3 = 9 plus 3 x 4 = 12, zusammen = 21 Ausgänge = 3 Ports verwendest, kannst Du die LED's mit Vorwiderstand bis ca. 10mA direkt an die Ports anschließen. Bei höheren Strömen würde ich die LED's über Treiber, z.B. ULN 2803, ansteuern.
Der Rest ist reine Programm-Sache.

mrg
17.04.2006, 13:50
mir gehts ausschliesslich ums programm.
die hardware is ein kinderspiel für mich.

aber wie gesagt hab ich keine ahnung vom atmega.
kann ich den über die serielle schnittstelle (RS232) beschreiben oder bracuh ich ein programmier modul wie beim pic?
ich würds in C programmieren,aber wie les ich die zeit von einer DCF77 antenne ab?
wie erreiche ich,daß mein main_loop inklusive subs exakt eine sekunde für einen durchlauf benötigt?
wie müßten die subs aussehen,in denen die aktuelle uhrzeit zerlegt und dividiert wird?
wobei ich mir vorstellen könnte daß ich in diesen subs bzw. im main_loop entsprechend verzögern muß,da nicht jede uhrzeit dieselbe rechenzeit benötigen wird.
ich könnte das aber vernachlässigen,da ich ja bloß die aufs funksignal zurückgreifen muß um die zeit aktuell zu halten.
aber halbwegs genau sollts schon laufen.
das sind meine probleme.

die wardware wird vermutlich eh nicht exakt so wie in diesem link beschrieben ausfallen.
ich überlege noch ein datum zu integrieren,aber dazu werd ich dieselben leds verwenden.

anzeige eben wahlweise zeit oder datum. oder selbststaändig wechselnd.

gibts vielleicht ein uhren ic welches sich über i2c auslesen läßt?
da spar ich mir die zeitkritischen routinen selbst zu schreiben.

MfG, Mr.G.

kalledom
17.04.2006, 14:13
Mit Atmega und C hast Du micht auf dem linken Fuß erwischt :-)
Bei PIC und Assembler könnte ich Dir helfen.

izaseba
17.04.2006, 14:18
gibts vielleicht ein uhren ic welches sich über i2c auslesen läßt?

Ja z.B DS1307 mit Batteriepufferung, hab ich erfolgreich im Einsatz.


wie erreiche ich,daß mein main_loop inklusive subs exakt eine sekunde für einen durchlauf benötigt?
Sowas macht man mit Timern und Interrups.

Gruß Sebastian

mrg
17.04.2006, 14:23
schade. denn grad mit assembler kann und will ich mich nicht anfreunden.

da wird mir zuviel gePUSHt und geMOVt.
keine ahnung wwie man damit was sinnvolles schreiben kann,dann ich find das unglaublich unübersichtlich und unnötig kompliziert.
ich hab da lieber eine längere anweisung mit if´s und repeats,functionen und diversen anderen verständlichen programmteilen.
wie find ich denn in assembler jemals wieder eine bestimmte stelle im code in der endlos langen wurscht?
sorry,das soll bestimmt keine beleidgung sein.
mir wärs zu kompliziert.

shaun
17.04.2006, 14:26
1. Für den AVR brauchst Du einen ISP-Programmieradapter, kannst Du Dir ganz einfach selbst bauen, besteht aus einem 74HC244 und etwas Drumherum, Pläne zuhauf im Netz (man nutze Google). Flashen kannst Du die Daten zB. mit Ponyprog (wieder Google), und wenn Du noch keinen Compiler hast, kannst Du Winavr (Richtig: Google) runterladen, das ist ein GCC für die AVR-Familie, wie üblich über makefiles gesteuert, in denen Du den Zielprozessor, Takt und andere Kleinigkeiten definierst. Wichtig bei den Megas: beachte die Konfigurationsbits, sonst eiert er mit 1MHz-RC-Oszillator herum und tut auch sonst nicht, was Du willst.

2. Wenn die Hardware für Dich kein Problem ist, wundert mich die Aussage "DCF-Antenne auslesen" etwas. Die Antenne liest man nicht aus, die empfängt allenfalls etwas, was dann demoduliert und anschliessend dekodiert wird. Dazu gibt es reichlich Doku im Netz, und das Demodulieren überlasst man sinnvollerweise einem DCF-Modul (hat Conrad bestimmt), da kommt dann jede Sekunde ein Impuls von 100 bzw. 200ms Länge für 0 bzw 1 raus, synchronisiert wird mit dem fehlenden Impuls jede volle Minute. Ein DCF-Treiber für den Zeitdämon ntp macht das Dekodieren durch Programmierung der seriellen Schnitte auf 50 Baud und prüft dann, ob das empfangene "Byte" vom Wert her eher der Zeit 100ms low oder 200ms low entspricht.

3. Nicht-DCFig geht's zB mit dem PCF8583, I2C-RTC mit RAM. Habe ich in meiner Berlin-Uhr verbaut, findest Du unter Projekte/Haus+Auto auf http://www.engcyclopedia.de inklusive ASM-Quelltext für einen AVR.

Viel Spass, losbasteln und vorzeigen :)

mrg
17.04.2006, 14:36
Ich gebe zu mie noch keine gedanken über besagte DCF antenne germacht zu haben.

ich werd mir mal die daten zum DS1307 und dem PCF 8583 reinziehen.
i2c soll ja so praktisch und einfach sein.
leider versteh ich von ASM wie gesagt nur BAHNHOF.

wenn ich damit fertig bin werd ichs auf jeden fall hier reinstellen.
wobei wie gesagt,die hardware hätt ich garantiert in ein paar stunden fertig.
würd aber vor dem einkaufen gern wissen ob mir eben jemand beim programmieren helfen möchte.
denn mit einem leeren "gehirn" fang ich nicht viel an. auch wenns noch so billig und klein und leistunsfähig is.

je öfter ich den punkt 2 lese desto mehr gefallen finde ich am NICHT DCFigen punkt 3.

Greetz...

izaseba
17.04.2006, 14:42
je öfter ich den punkt 2 lese desto mehr gefallen finde ich am NICHT DCFigen punkt 3.

Ja DCF ist nicht ganz ohne.

würd aber vor dem einkaufen gern wissen ob mir eben jemand beim programmieren helfen möchte.
denn mit einem leeren "gehirn" fang ich nicht viel an. auch wenns noch so billig und klein und leistunsfähig is.


Es stellt sich nur die Frage, ob Du einfach ein Programm haben möchtest, oder ob Du was davon verstehen willst.

Ein Programm dafür in C hab ich schneller, als Du Deine Hardware zusammengelötet hast, nur Du hast nicht viel davon, besser ist ja sich selber damit auseinanderzusetzen.

Gruß Sebastian

mrg
17.04.2006, 14:54
deswegen war meine frage ja auch nach HILFE.
ich hab kein interesse an einem fertigen code.
ich könnt den code in c auch selbst schreiben.
z.b. fürn PC in einer windows umgebung.
nicht aber für einen besagten ATmega da ich von diesem absolut keine ahnung habe.
mit der c-control würd ichs auch noch schaffen,passt mir aber gar nicht.
erstens is es so ein komisches extrem abgespecktes basic,zweitens is der baustein VIEL zu fett und drittens bekomm ich um den preis einer c-control bis zu 4 ATtiny´s.
und interrupts gibts auch keine.

aber für einfache unkomplexe aufgaben, und zum anfangen is das teil ok.
hab damit eine alarmanlage mit gsm modul,usv usw. realisiert.

jetzt solls komplexer werden,eben mit dieser binär uhr.

nur fehlt mir schon mal grundlegendes wissen über den ATmega.

was gibts im code zu beachten?

izaseba
17.04.2006, 14:59
Schau mal da (http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial)

Gruß Sebastian

mrg
17.04.2006, 15:00
ich muß dann leider los. arbeit ruft.
ich schau in den nächsten tagen wieder rein.

für den fall, daß jemand interesse hat mit mir darüber außerhalb des forums zu plaudern laß ich meine mail adresse hier.

mrg@gmx.at

für jede kleine hilfestellung bin ich dankbar.

Thanx, MfG

----> Mr.G.

SeaLion
17.04.2006, 21:40
Ich habe so etwas mal mit einem Tiny12 und dem DCF Empfänger von Conrad gebaut. Ist eigentlich nicht schwer.

Finde gerade leider kein anderes Bild, deshalb gibt es einfach mal dieses hier :-)
http://www.gs-500.de/index.php?page=3&smartor_mode=album_showpage&pic_id=5670