Ich brauch dringend die Antwort hier: http://img.photobucket.com/albums/v61/devilhope/muster.jpg erste aufgabenteil Die Lichterkette soll zeitlich, hochgenaue Lichtwechsel ausführen.. (so Dioden/Taster an den Ports/pins halt.. eben...) Man benötigt Zeitbasis von 500ms. Initialisieren Sie, den Timer0 so, dass genau einmal alle 500ms ein interrupt service routine nebenläufig aufgerufen wird. Die Quarzfrequenz beträgt 0.032768Mhz (gewöhnlicher uhrenquarz).. so beginnt der code...(man muss den code aufschreiben) void initTimer0() { Der zweite aufgabenteil... Warum kann man die vorherige Aufgabe mit Timer 4.096000Mhz oder 0.030000Mhz lösen ?? noch ein aufgabenteil Um die Verlustleistung!! abzusenken soll die CPU zwischen zwei wechseln am LED muster angehalten werden. geben sie die Änderung für folgende main funktion: int main() { initKey(); //funktion zu tasterabfrage initTimer0(); while(1) { } } Danke im vorraus !!
1. Der Scan ist nicht gut, d.h. es ist quasi garnichts darauf zu erkennen. 2. Wo sind deine Ansätze bzw. eine konkrete Frage zu deinem Problem?
Was ist denn das? Unter dem Tisch fotografiert und mit dem Handy in Forum gepostet? Wer schreibt denn um diese Uhrzeit noch eine Klausur? :-)
Das Bild braucht kaum für die Aufgabenteile die ich gelistet habe. Es interessiert mich hauptsächlich wie man die Sache mit den Quarzclock (Taktgeber) macht. Also eigentlich die Formel und den Code macht ohne OCR nur mit timer0 ueberlauf. Oder mit ocr wenn es mit uebarlauf zu kompliziert ist.
Wo ist eigentlich das Problem? Sieht aus, wie ne Aufgabe, die jeder Hobbybastler in einer Stunde runter hat. Nur mit Tutorial und Datenblatt Recherche.... Soooo schwer ist das ja auch nicht, dass man nicht drauf kommen könnte. Die Grundlegenden Fragen sind nur: - Wie funktioniert ein Timer - Wie funktioniert die Poartausgabe - Und vielleicht noch, ob der Uhrenquarz am XTAL oder am Timer-Oscillator hängt.....
Mit Überlauf: Register nachladen. Sonst: Die Datenblätter von Atmel zu den AVRs sind eigentlich mustergültig, alles mit C- und ASM-Beispielprogramm. Dann gibts hier noch ein Tutorial und für ASM-Grundlagen suche man bei Google nach 'avr asm tutorial', gleich das erste. C-Grundlagen lernt man anhand des 'Programmieren in C' von K&R, das ist leicht zu lesen und beinahe schon humorvoll.
Ich dachte ich bekomme eine klare antwort. Ich habe schon http://www.mikrocontroller.net/articles/AVR-Tutorial:_Timer aber zur Zeit habe ich liege ich im Haufen Kot ^_^ und bräuchte so wie eine Erklärung zur Aufgabe da ^_^ MfG
Dein Quarz hat 0.032768Mhz, also 32768HZ. Jetzt stellst du den Prescsaler auf 1024 ( TCCR0 = (1 << CS00) | (1 << CS02); ) und dein Interrupt wird nur noch alle 1/32 Sekunden ausgelöst. In der ISR noch eine Schleife die 16 mal die Interrupts mitzählt und dann dort meinetwegen die Taster noch abfragen. aber ... gearbeitet wird im Hauptprogramm. Schau doch mal ins Tutorial und in das Datenblatt vom Atmega8. Zum zweiten Aufgabenteil: Kannst mal überlegen was der Prescaler macht.
Klausur erst morgen ^_^ Wenn jemand kann bitte, noch ergänzen. Danke sehr !
> Dein Quarz hat 0.032768Mhz, also 32768HZ. > Jetzt stellst du den Prescsaler auf 1024 > ( TCCR0 = (1 << CS00) | (1 << CS02); ) und dein Interrupt wird nur noch > alle 1/32 Sekunden ausgelöst. Nöö, zu kompliziert. 32768 Hz / 256 (Überlauf des Timers) = 128, mit Prescaler 64 macht das eine Frequenz von 2Hz. Also genau alle 500ms. So kann ich mir blödes händisches Zählen sparen. > Warum kann man die vorherige Aufgabe mit Timer 4.096000Mhz oder > 0.030000Mhz lösen ?? Weil Prescaler und ggf. Output-Compare-Register verwendet werden können, um die Interruptfrequenz recht granular zu regeln. > Um die Verlustleistung!! abzusenken soll die CPU zwischen zwei wechseln > am LED muster angehalten werden. geben sie die Änderung für folgende > main funktion: http://www.atmel.com/dyn/resources/prod_documents/doc2486.pdf Kapitel "Power Management and Sleep Modes"
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.