PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Timer mit ISR programmieren ATTiny2313



Speedfreak-mml
11.07.2009, 22:26
Hallo

Nachdem ich nun meine ersten Versuche mit C und einem AVR gemacht habe möchte ich mich weiter vorwagen.
Ich habe mir schon das Tutorial angesehen, aber irgendwie komme ich damit nicht so ganz klar. Viele Schlüsselwörter sind beim Tiny2313 auch anders als im Tut beschrieben.

Nun erstmal zu Problem: Ich möchte, nachdem ein Eingang gesetzt wurde eine bestimmte Zeit verstreichen lassen und dann einen Ausgang setzen. In dieser Zwischenzeit sollen aber auch noch andere Dinge geschehen können, also z.B. andere Ausgänge gesetzt werden.
Sollte man dieses nun über einen Timer und eine ISR realiesieren oder gibt es andere bessere Wege?

Wäre echt nett wenn einer von euch mir hier ein kleines Programm posten könnte, am besten gut kommentiert, damit ich was draus lernen kann.

Vielen Dank schonmal!

Olli

Besserwessi
11.07.2009, 23:30
Die C Schlüsselwörter bleiben alle die selben, egal was für Prozessor. Was sich ändert sind die Namen der Register, um Hardwarefunktionen wie Timer anzusprechen. Atmel hat da einmal das System etwas geändert. Meistens ist nur irgendwo eine 0 oder 1 dazugekommen für die Nummer des Timers oder der USART.

An sich sind die Register aber zwischen den verschiedenen AVR Chips noch gar nicht so verschieden.

Wenn man auf etwas warten will, und zwischendurch noch was anderes zu tun hat, dann sind interrupts die Methode der Wahl. Im normlen Hauptprogramm macht erledigt mal oft nur eine Aufgabe. Die anderen kommen in ISRs. Zum Teil kommt auch fast alles in den Interrupt und das Hauptprogramm wartet nur.

Ein paar Beispielprogramme findet man z.B. im RN-Wissen. Die meisten sind da auch ganz gut kommentiert.

Wenn man das Prinzip der Interrupts erst mal verstanden hat, kann man damit auch sehr übersichtliche Programme schreiben. Die wenigsten Programme im Mikrokontroller kommen ohne Interrupt aus.

Hubert.G
12.07.2009, 10:43
Hier gibt es was über Timer www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Die_Timer.2FCounter_des_AVR
und hier www.rn-wissen.de/index.php/Timer/Counter_(Avr)