Hallo... Ich experiemntiere schon seit einigen Wochen mit einem ATmega48. Dank des AVR-GCC Tutorials habe ich auch schon eine vielzahl von Sachen wie USART hinbekommen. Das einzige was ich nicht verstehe ist wie ich einen Timer programmiere. Kann mir jemand mal ein ganz einfaches Beispiel in C schreiben wo eine LED an PB0 (active LOW) im 1sec Takt blinkt? Am AVR hängt ein Quarz mit 4 Mhz und der AVR selbst läuft auch mit 4 Mhz (Fuse Low Byte = 0xe0) Danke
entschuldigung die LED ist active High
Gast
#345215
Warum nicht das Datenblatt benutzen, die entsprechenden Register setzen und gucken, was ´rauskommt?! Vorerst nur mal das Overflow Flag pollen, später dann einen passenden Interrupt benutzen und eine Interrupt-Service-Routine programmieren.
Gast
#345216
Hallo, ich empfehle die ATMEL Application Notes! Für Timer z.B.: http://www.atmel.com/dyn/resources/prod_documents/DOC2505.PDF Gruß, Dennis
so habe das jetzt wie folgt versucht: TIMSK0 |= (1 << TOIE0); TCCR0A |= (1 << CS02) | (1 << CS00); leider sind das ja nur ca 63mn (richtig?). Aber auch wenn ich das in eine for schleife reinhänge bekomme ich keinen längeren Timer hin. Kann mir jemand sagen was ich falsch mache?
Gast
#345218
Mit den Einstellungen sollten es bei 4 MHz ziemlich genau 65,536 ms sein. Wenn Du mehr haben willst, nimm entweder nen 16-Bit-Timer (der geht dann bis fast 17 s) oder ne Zählvariable...
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.