Hallo,
so ganz sind wir noch nicht am Ende![]()
Es gibt noch einige Fehlerquellen oder wir haben etwas übersehen.
Hast du eine LED zum Blinken am µC?
Bitte probiere einmal folgenden Code.
Im Bereich der #defines musst du das Programm halt anpassen. PORT und Pin der LED und Controllerfrequenz. Die LED sollte Blinken und das Programm ständig a senden. Bitte achte beim compilieren auch auf Warnungen. In hTerm 9600 Baud 8Data 1Stopbit keine Parity. Wenn das keinen Erfolg bringt, poste bitte die Einstellungen deiner Fusebits.Code:#include <avr/io.h> #include <avr/interrupt.h> #define LEDPORT DDRA |= (1<<PA7) #define LEDON PORTA |= (1<<PA7) #define LEDOFF PORTA &= ~(1<<PA7) #define F_CPU 16000000 volatile uint8_t toggle; void InitUart (void){ uint16_t ubrr; ubrr = ((F_CPU/(9600L*16L))-1); UBRR1H = (unsigned char)(ubrr>>8); UBRR1L = (unsigned char) ubrr; UCSR1B = (1<<RXEN1)|(1<<TXEN1); UCSR1C = (1<<UCSZ11)|(1<<UCSZ10); } int main () { LEDPORT; TCCR1B = (1<<WGM12)|(1<<CS12)|(1<<CS10); TIMSK1 |= (1<<OCIE1A); OCR1A = 0x0680; sei(); InitUart (); while(1) { if (toggle > 0){ if (PORTA && (1<<PA7)){ LEDOFF; }else{ LEDON; } toggle = 0; } while ( !(UCSR1A & (1<<UDRE1))); UDR1 = 'a'; } return 0; } ISR (TIMER1_COMPA_vect){ toggle = 1; }
Die LED habe ich mit rein genommen, damit man erkennen kann, ob sich der Controller ständig resettet.
Gruß
Jens







Zitieren

Lesezeichen