wenn ich die interrupts ausmache, wie merk ich dann wenn der timer abläuft? da muss ich ihn ja doch in ner schleife abfragen. und wenn eh ne schleife nötig ist kann ich mir den timer sparen...
mfG
cht
Druckbare Version
wenn ich die interrupts ausmache, wie merk ich dann wenn der timer abläuft? da muss ich ihn ja doch in ner schleife abfragen. und wenn eh ne schleife nötig ist kann ich mir den timer sparen...
mfG
cht
Ich habe mich mit meinem obigen Beitrag darauf bezogen:
damit diese Zählschleifen nicht durch interrupts unterbrochen werden, sollte man in der Zeit wo die Zählschleife läuft die Interrupts deaktivieren.Zitat:
Zitat von snowgras
Wenn ich die Interrupts deaktiviere hat es absolut keinen Sinn einen Timer zu verwenden, da sich dieser ja dann nicht mehr meldet bis ich die Interrupts wieder aktiviert habe.
Wie kann man das ganze denn mit einem Timer lösen ... ich habe das ganze Timerkrams irgendwie noch nicht verstanden ... und ich hab es mir jetzt schon zum 3. mal durchgelesen ... wenn ich nen 8 bit Timer setze läuft dieser bis 255 durch und fängt dann wieder von 0 an wenn ich jetzt aber 1 sec warten und das mit einem timer lösen möchte wird das bis 255 zählen jedoch nicht ausreichen oder seh ich das falsch? Kann mal wer ein Beispiel Posten in dem 1 Led leuchtet dann 1 Sec gewartet wird und dann eine andere Led leuchtet ...
#include <avr/io.h>
#include <inttypes.h>
typedef unsigned char BYTE;
typedef unsigned short WORD;
int main(void)
{
DDRA=0xff
DDRB=0xff
PORTA=0x1
hier der kram mit dem timer
PORTA=0x0
PORTB=0x1
}
Wenn ich es richtig gelesen habe, dann wissen wir noch nicht um welchen Controller es sich handelt. Ich gehe hier mal vom ARV aus.
Ich würde eigentlich jedem raten - insbesondere am Anfang - nicht immer alles selbst zu machen, sondern eine fertige Library zu nehmen. Da muss man für solche sachen dann nur noch das richtige Headerfile einbinden, das richtige Object file linken und schon kann man einfach " timerPause(1200)" in sein Programm einfügen - und schwups hat man eine timergesteuerte 1,2 Sek Pause.
Ich habe aus der Library, die ich verwende, auch eine Menge über den AVR gelernt. Man kann ja reinschauen und als Beispiel sehen wie der Libraryersteller das Problem gelöst hat. Und Dinge wie - PortI/O, Interrupt gesteuerte RS232 I/O, Software RS232, I2C, AD Wandlung. LCD Anschluss .... sind schon tausendmal Erfunden . Da muss ja nicht jeder das Rad neu erfindenCode:.....
#include <timer.>
.....
main()
{
.......
timerPause(1200);
.......
}
Es it immer schwierig eine spezielle Lib vorzuschlagen. Ich habe einige Ausprobiert.
Das muss einfach jeder selbst entscheiden welche er mag und welche ihm nicht liegt
Ich selbst nehme die AVRLIB von Pascal Stang
http://hubbard.engr.scu.edu/embedded/avr/avrlib/
( Keine Werbung, ich habe nix mit Ihm zu tun.)
Gruss
Frank