Interrupts erzeugen

Die Programmierung des c't-Sim

Moderator: Moderatoren Team

Antworten
Sebi84
Friends of Marvin
Friends of Marvin
Beiträge: 8
Registriert: 04 Okt 2007, 17:06

Interrupts erzeugen

Beitrag von Sebi84 » 25 Okt 2007, 12:37

Hallo,

Ich versuche gerade ein kleines Prog für den Bot zu bauen, wofür ich interrupts benötige. Wie kann ich das machen?
Bisher habe ich folgendes:

#define TIMER_2_CLOCK 5619 // [Hz]
OCR2 = ((XTAL/64/TIMER_2_CLOCK) - 1 );

TCCR2 = _BV(WGM21) | _BV(CS22);
TCNT2 = 0; //Startwert des Zählers
TIMSK |= _BV(OCIE2);
sei(); //Interrupts EIN

....
int main (void){
init();
int run=1;
if (sensLineL>=LINE_SENSE && sensLineR>=LINE_SENSE && run) {
motor_set(10,10);
}

SIGNAL (SIG_OUTPUT_COMPARE2A){ //HIER FEHLER!!!
if(sensDistL>500 && sensDistR>500){
run=0;
}
}

//motor_set(10,10);

return 1;
}

Leider kennt der Compiler dieses SIG_OUTPUT_COMPARE2A nicht. Was mache ich da falsch?

eax
Friends of Robby
Friends of Robby
Beiträge: 763
Registriert: 18 Jan 2006, 16:16
Wohnort: Karlsruhe

Beitrag von eax » 25 Okt 2007, 18:22

Hallo,

SIGNAL() und SIG_ sind veraltet (wenn du die aktuelle avr-libc benutzt).
Die aktuellen Namen der Makros für alle Interrupts findest du hier: http://www.nongnu.org/avr-libc/user-man ... rupts.html

Gruß Timo

Antworten