Gast
#711061
hallo, beeinflusst die isp-frequenz die baudrateneinstellungen?muss ich da außer den "1/4 ..." beachten? hier mein code für den ATMega32 und ATMega8515: #include <avr/io.h> #include <util/delay.h> #ifndef F_CPU /* In neueren Version der WinAVR/Mfile Makefile-Vorlage kann F_CPU im Makefile definiert werden, eine nochmalige Definition hier wuerde zu einer Compilerwarnung fuehren. Daher "Schutz" durch #ifndef/#endif Dieser "Schutz" kann zu Debugsessions führen, wenn AVRStudio verwendet wird und dort eine andere, nicht zur Hardware passende Taktrate eingestellt ist: Dann wird die folgende Definition nicht verwendet, sondern stattdessen der Defaultwert (8 MHz?) von AVRStudio - daher Ausgabe einer Warnung falls F_CPU noch nicht definiert: */ #warning "F_CPU war noch nicht definiert, wird nun nachgeholt mit 16000000" #define F_CPU 16000000L // Systemtakt in Hz, das L am Ende ist wichtig, NICHT UL verwenden! #endif void sendUart(unsigned char c) { while (!(UCSRA & (1<<UDRE))) /* warten bis Senden moeglich */ { } UDR = c; } int main(void) { UCSRB |= (1<<TXEN); // UART TX einschalten UCSRC |= (1<<URSEL)|(3<<UCSZ0); // Asynchron 8N1 UBRRH = 0; UBRRL = 11; while(1) { sendUart('@'); _delay_us(10); } return 0; } mit hilfe eines logicanalyzers habe ich herausgefunden, dass man mit "UBRRL = 11;" in etwa die baudrate hinbekommt. laut datenblatt soll dort aber eine 51 eingetragen werden...kann mir jemand weiterhelfen??? thx...