PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche Proggrammierer - ganz kleines Uhr Projekt



-Hunter-
10.01.2009, 18:43
Hi ihr,
ich hab mir eine Uhr gebastelt aber hab gemerkt dass sogar das mir zu scher zum Programmieren ist.
Ich hoffe hier einen freiwilligen zu finden, der mir das Programm schreibt.
Es kann auch nur ein Countdown sein ....
Aber ich krieg das nicht gut hin...
Ist ein Mega8 mit folgendet Pinbelegung:
Ich will nicht dass mirjemand die arbeit abnimmt, ich hab aber gemerkt dsas es für mich zu schwer ist.
Uhr

PC0-PC3 = Ziffer4-Ziffer1 (falschrum drangelötet deshalb so rum)
PB0=Taster1 (10kOhm und dann zu Vcc)
PB1=Taster2(10kOhm und dann zu Vcc)
PD0-PD6=Segment1-Segment7
PB6(XTAL1)+PB7(XTAL2)=Quarz

Wäre echt nett,
MfG
-Hunter-

PCMan
10.01.2009, 20:18
Schau mal im Wiki, da ist eine Beschreibung, wie du im Sekundentakt eine LED binken lassen kannst. Das sollte doch schonmal reichen, um einen Einstieg zu finden...

Besserwessi
10.01.2009, 21:06
Wenns hilft könnte ich Code zum ansteuern eines 7 Segment Displays beisteuern. Sind zwar andere Pins und 5 Stellen, aber das sollte leicht zu ändern sein.

-Hunter-
10.01.2009, 21:09
Joa, über den Code würd ich mich auch schon freujen :-)

the_Ghost666
11.01.2009, 10:32
Moin.
Also zur Uhr selbst mach ich das immer so :
Ich erstelle einen Interrupt, z.B. mit Timer0, noch besser mit dem 16bit-Timer und einem Quarz an dessen eigenem Eingang, der 32,768kHZ hat. Letzten würde ich dann am Anfang des Interrupts mit 0x8000 laden. Wenn du es mit dem Systemtakt machst, musst du dir mal ausrechnen, wie du den Prescaler und Startwert einstellen musst. Sollte der Prescaler nicht reichen, kannst du einen weiteren in Software erstellen, indem du in der Routine folgendes machst:

if(Prescaler_10x == 10)
{
//code der alle 10x ausgeführt wird
Prescaler_10x = 0;
}
else
Prescaler_10x++;

Mit diesem Code in der Interrupt-Routine, die alle 1ms überläuft, hast du einen 10x Prescaler in Software eingebaut.

Wenn du also eine Routine hast, die einmal pro Sekunde ausgeführt wird, machst du folgendes:

Sekunden++;
if(Sekunden>=60)
{
Sekunden=0;
Minuten++;
}

JeyBee
11.01.2009, 10:34
Moin,

Ich darf das hier empfehlen: http://blackstrom.derschwarz.de/avr/avr_uhr/index.shtml



Mfg JeyBee

-Hunter-
11.01.2009, 12:44
Danke für die Antworten,
aber leider kann ich basic gar nicht und c nur ansatzweise,
weiß leider gar nicht was ich da jetzt alles modifizieren sollte 8-[

pyr0skull
11.01.2009, 13:00
Am besten ist, du fängst mit den einfachen Sachen aus dem Tutorial an und erarbeitest dir den Rest selber, das erspart dir das zusammenkopieren aus allen möglichen Quellen, da kommt meistens nur Quark raus. C und Basic kann man durchaus lernen, wenn du das nicht möchtest, kannst du dir für weniger als 10 Euro eine fertige Uhr kaufen ;)

-Hunter-
02.09.2009, 22:03
Hi ihr^^
Ich bins nach lange wiedermal^^
Ich hab leider nicht weitergemacht mit dem Proggen usw wegen viel Stress in der Schuel u.a.
Nun hab ich meine Uhr wieder gefunden, als sie auf dem Schrank lag, und fragte mich ob sie noch funktionieren würde.
Habe leider kein Programm, hab wie gesagt auch nicht die Fähigkeiten eins zu schreiben, oder die Zeit es zu lernen.
Frage jeds mal direkt nach ob mir einer das Programmieren kann.
Es muss nicht sonderlich genau sein.
Vielleicht ein Countdown ,ne "ungenaue Uhr", n paar animationen auf knopfdruck, alles was gehen könnte.
Würde mich sehr freuen und dieses "ungenaue" gewurschtel, dass ich die Schaltung nenne vielleicht noch n bisschen schöner machen, wenn es denn funktioniert.
Wie gesagt:
Würde mich sehr freuen :-)
Ist für den ATmega8^^
Hier (http://www.ledstyles.de/index.php?page=Attachment&attachmentID=5505&h=523b822b5ec6598bb343d7317dbcc9243ba2bc94)ist die
Schaltung nochmal und die Belegung wie folgt:

PC0-PC3 = Ziffer4-Ziffer1 (falschrum drangelötet deshalb so rum)
PB0=Taster1 (10kOhm und dann zu Vcc)
PB1=Taster2(10kOhm und dann zu Vcc)
PD0-PD6=Segment1-Segment7
PB6(XTAL1)+PB7(XTAL2)=Quarz

Mir wäre schon klar, dass es die gleiche Bitte ist wie beim eröffnen des Threads aber ich hab eben den Grundstoff vergessen den ich mal konnte, und zum lernen ist keine Zeit.

Wie gesagt, wäre sehr sehr nett

O:)