Hallo,
mein USART schickt nur Nullen raus. Die Konfiguration ist so gemacht
wie im Datenblatt. Hier der Quellcode:
#include <avr/io.h>
#include <inttypes.h>
#include <delayms.c> //eigene Timerfunktion die etliche Milisec
"wartet"
int main(void)
{
uint8_t LED;
unsigned int baud;
DDRC = 0x00;
SETBIT(DDRC,PC0); //hier sind meine LEDs qngeshclossen
SETBIT(DDRC,PC1);
LED = 1;
/*USART Konfiguration*/
baud = 9600;
UBRRH = (unsigned int)(baud>>8);
UBRRL = (unsigned int)(baud);
UCSRB = 0x00;
SETBIT(UCSRB,RXEN); //RXD und TXD enablen
SETBIT(UCSRB,TXEN);
UCSRC = 0x00;
SETBIT(UCSRC,URSEL); //use UCSRCregister instead of UBRRH
SETBIT(UCSRC,USBS); //1 Stopbit
SETBIT(UCSRC,UCSZ0); //setting 8bit Format
SETBIT(UCSRC,UCSZ1);
/*Schleife*/
for(;;)
{
while (!(UCSRA & (1<<UDRE))); // wait for empty transmit buffer
UDR = 0X20; // !!!!!! EGAL was ich hier angeb, es wird immer 0x00
rausgeschickt (Ich ueberwache mit Serial Monitor Programm)
LED = 1-LED;
PORTC = LED;
delayms(300);
}
}
Wer sieht da einen Fehler?
mg,
Johannes
Ich habs, Fehler in der HArdware :) Chip falschherum reingeloetet... !!!!!!!grmpf!!!!!!!!!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.