Hallo,
so ganz sind wir noch nicht am Ende :wink:
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