-         
+ Antworten
Ergebnis 1 bis 3 von 3

Thema: Probleme mit Interrupts

  1. #1

    Probleme mit Interrupts

    Hallo Ihr, Vielleicht könnt ihr mir helfen...

    ich habe ein Programm geschrieben welches mittels der externen Interrupts an PORTD alle Leds an PORTB aus bzw. einschalten soll.
    Ich verwende dazu das STK500/STK501.
    Und hier ist der Code:
    Code:
    #define __AVR_ATmega128__
    
    #include <avr/io.h>
    #include <interrupt.h>
    
    int main()
    {
       cli();
       DDRB = 0xff;
       PORTB = 0xff;
       DDRD = 0x00;
       MCUCR |= 0b00000101
       GICR = 0xff;
       sei();
       while(1);
    }
    
    SIGNAL(SIG_INTERRUPT0) 
    {
       PORTB = 0x00;
    }
    
    SIGNAL(SIG_INTERRUPT1) 
    {
       PORTB = 0xff;
    }
    Beim Versuch dies alles zu kompilieren erhalte ich jedoch folgenden fehler:
    Code:
    Compiling: test.c
    avr-gcc -c -mmcu=atmega128 -I. -gstabs   -O3 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=test.lst  -std=gnu99 -Wp,-M,-MP,-MT,test.o,-MF,.dep/test.o.d test.c -o test.o 
    test.c:18: warning: function declaration isn't a prototype
    test.c:18: warning: return type of 'main' is not `int'
    test.c: In function `main':
    test.c:25: error: `GICR' undeclared (first use in this function)
    test.c:25: error: (Each undeclared identifier is reported only once
    test.c:25: error: for each function it appears in.)
    test.c: At top level:
    test.c:30: warning: return type defaults to `int'
    test.c:30: warning: function declaration isn't a prototype
    test.c: In function `SIGNAL':
    test.c:30: warning: type of "__vector_1" defaults to "int"
    test.c: At top level:
    test.c:35: warning: return type defaults to `int'
    test.c:35: warning: function declaration isn't a prototype
    test.c:35: error: redefinition of 'SIGNAL'
    test.c:30: error: previous definition of 'SIGNAL' was here
    test.c: In function `SIGNAL':
    test.c:35: warning: type of "__vector_2" defaults to "int"
    make.exe: *** [test.o] Error 1
    Ich habe keine Ahnung was das sein könnte, aber vielleicht könnt ihr mir weiterhelfen...

    mfg diesollbruchstelle

  2. #2
    Gast
    Denn sie wissen nicht, was sie tun.
    Bspw. brauchst du für die Verwendung von SIGNAL (...) auch die signal.h
    Dann schreibt man int main (void).
    Das cli () kannst du dir auch schenken, da Int. nach dem Einschalten erstmal deaktiviert sind.
    Oben musst du schreiben #include <avr/interrupt.h>.

    Schau doch einfach mal in die auf dieser Seite verlinkten Tutorials, dort findet man Beispielprogramme, wo du dir schnell abschauen kannst, was wie zu handhaben ist.

  3. #3
    der grund dass ich <interrupt.h> includiert hab is der, das ich vorher nicht SIGNAL sondern INTERRUPT verwendete ... naja... das is ja egal

    thx a lot für die rasche Antwort

+ Antworten

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •