PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Interrupts



Andun
14.10.2005, 21:25
Hi

Da ich ja jetzt auch grade versuche die Atmegas zu proggen, bin ich jetzt irgendwie an den Interrupts hängen geblieben.

Auf jeden Fall hab ich das Problem, dass ich die Fehlermeldung nciht verstehe. Bitte helft mir!


/*
Andun - johanneskreuzer@gmx.de 14.10.2005
Atmega16 mit 8Mhz Quarz
Dieses Programm dient zum testen der Interrupts
*/
#include<avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include<stdint.h>

void main()
{
DDRD |= (1<<PD5);
MCUCR |= (1<<ISC01)|(1<<ISC00)|(1<<ISC11)|(1<<ISC10);
GICR |= (1<<INT0)|(1<<INT1);
sei();
while (1);
}

SIGNAL(INT0){
PORTD |= (1<<PD5); // LED1 an
}

SIGNAL(INT1){
PORTD &= ~(1<<PD5); // LED1 aus
}


Der Fehler ist folgender:

main.c:22: error: parse error before numeric constant

Zeile 22 ist die 'SIGNAL(INT0){'.

Wenn ihr ne Idee habt, wäre das cool. Danke

Andun

linux_80
14.10.2005, 21:40
Hallo,

das Signal heisst nicht INT0, zumindest bedeutet das INT0 was anderes als für das Du es verwenden willst.
Such mal in den Header-Dateien des avr-gcc die Datei iom16.h da sind die Signale des M16 definiert, ab zeile 459.

kater
15.10.2005, 08:26
Sie heissen SIGNAL(SIG_INTERRUPT0) und SIGNAL(SIG_INTERRUPT1).
Jetzt spuckt der Compiler nur noch 2 Warnungen aus aber sonst sollte es gehen.

Andun
15.10.2005, 09:12
Achso . . . . OK. Danke

Ich dachte die heißen so, weil die im Datenblatt so angegeben waren . . . (glaube ich).

Ok, dann schau ich mir mal die iom16.h an . . . . wenn ich sie irgendwo finde . . .

Danke

Andun