AT90S4433 Uart-Interrupt mit avrgcc

Gast #100078
hallo,
möchte gerne irgendein byte über den uart schicken, und wenn es
angekommen ist, dann soll die interrupt routine jedesmal den PortB
invertieren.
Die Led die dort angeschlossen ist blinkt dem entsprechend.
ohne interrupt un  in assembler läuft dieses.

was mache ich falsch?? avrgcc neuling!! hier mein quellcode:

#include <avr/io.h>
#include <avr/sfr_defs.h>
#include <avr/signal.h>
#include <avr/interrupt.h>


INTERRUPT (SIG_UART_RECV)
{
  PORTB=~PORTB;


}


/************************************************/
void uartreceive_ini (unsigned char data)
{
  UBRR=data;

  UCSRB  |= (1<<RXEN)|(1<<TXEN)|(1<<RXCIE);
}
/************************************************/
int main (void)
{
  uartreceive_ini(25);


  DDRB=0xFF;
  PORTB=0x00;
  sei();
  while(1)
    {

    }

  return 0;
}

danke schon einmal
peter bauer
Gast #100079
lies einfach das empfangene Byte aus (temp = udr).
Dadurch wird das Interrupt-Flag gelöscht.
Sonst wird dauernd das RECV-Interrupt ausgelöst, und deinb Port B
blinkt...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.