Hallo asuror,
Ich weiß nicht ob, Du die anderen Dinge die ich aus der SIGNAL... entfernt habe im Interrupt ausgeführt haben willst?Code:#include "asuro.h" #include <avr/interrupt.h> // Damit der IRQ funktioniert, muß dieser freigeschaltet werden GICR = (1<<INT1); //z.B beim ATMega8 // IRQ INT1 SIGNAL(SIG_INTERRUPT1){ //... hier steht was im Interrupt gemacht werden soll. } int main(void) { Init(); sei(); // Globale IRQ's freigeben StartSwitch(); StatusLED(GREEN); MotorDir(FWD,FWD); MotorSpeed(100,100); StatusLED(RED); MotorDir(RWD,FWD); MotorSpeed(100,100); unsigned char i; for(i = 0;i < 255;i++){ Sleep(255); } while(1); return 0; }
Wenn dem so ist, so ist dies nicht die richtige Art. Der Interrupt soll nur kurz die normale Abarbeitung unterbrechen
und nicht stundenlang was eigenes tun, dann ist der Sinn verfehlt.
Grüße







Zitieren

Lesezeichen