Gast
#1833770
Hallo zusammen, Hab ein sehr unplausibles Problem:). Also ich möchte mit ner getch()-Routine ein Signal einlesen. Dabei verharre ich in einer while-schleife, bis ein Interrupt(Start-Knopf) eintritt, oder an RXC ein Signal/Daten anstehen. Das funktioniert soweit ganz gut, solange ich keine LED an Port PB3 ansteuere. Ich verstehe einfach nicht, warum PB3 mir den Empfangspuffer blockiert... Ich arbeite mit dem AtMega32 und AVR Studio. Schon mal danke im voraus Hab hier mal meine getch()-Routine: #include <avr/io.h> #include "global.h" #define Bereit_LED PB3 // LED 2 volatile uint8_t Interrupt_Flag; unsigned char getch2 (void) { #ifdef UCSRA while ( !(UCSRA & (1 << RXC)) && (Interrupt_Flag == 0)); { PORTB |= (1<<Bereit_LED); } #else while ( !(USR & (1 <<RXC))); #endif PORTB &=~ (1<<Bereit_LED ); return UDR; }