OOOOH....
will mir denn niemand helfen????
Ich muss nur wissen, wie ich die Verzögerung aufrufen kann..., wie ich den TIMER und die Zeit intialisieren kann ist klar....
BITTE
So....
Hab mich jetzt durch das Roboternetz durchgeschlagen und weiss nun, wie man die Timerzeiten berechnen kann... Beispielprogi hat auch gut funktioniert, mit verschiedenen Zeiten...
Nun weiss ich nur nicht so genau, wie das mit den Interrupts funktioniert.
Ja, ich weiss, das bei jedem Überlauf der Interrupt Signal_usw.... ausgelöst wird...
Jedoch weiss ich nicht, wie ich nun diesen Interrupt an einer bestimmten Stelle in meinem Programm laufen lassen kann...
Ich möchte z.B. einfach eine Verzögerungsschaltung machen, bei der bei Tastendruck die LED's für 2s leuchten...
kann ich jetzt irgendwie in diesen Codeschnipsel
die Verzögerung einbauen??Code:while(1) { if(PINB==0x01) { outp(0xFF,PORTA); ------> !!!!!!!!!!Hier will ich die 2s Verzögerung!!!!!!!!!! <--------- } outp(0x00,PORTA); }
Ich hoffe, ihr könnt mir helfen
OOOOH....
will mir denn niemand helfen????
Ich muss nur wissen, wie ich die Verzögerung aufrufen kann..., wie ich den TIMER und die Zeit intialisieren kann ist klar....
BITTE
Taster gedrückt -> Initialisierung und Start des Timers -> Timerinterrupt nach Zeit x -> deaktivieren des Timers und Ausführen der gewünschten Aktion
Wo ist das Problem und warum so ungeduldig? Mit ein bischen Gehirnschmalz bekommt man das einfach hin.
Danke mal für deine Antwort...
Der Ablauf ist mir eigentlich auch klar...
Schreib jetzt mal meinen Code rein. Berechnet ist ca. 1s mit 1024 prescaler und 16-bit timer...
Sagt mir was noch nicht stimmt....
Danke
Code:#include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> int timer_init (void) { TIMSK = _BV(TOIE1); TCNT1 = 57724; TCCR1B = _BV(CS12) | _BV(CS10); sei(); } int main (void) { DDRA=0xFF; while(1) { timer_init(); outp(0xFF,PORTA); timer_init(); outp(0x00,PORTA); } }
Lesezeichen