PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Übertragung vom µC zum PC funktioniert nicht



Robo2004
09.05.2004, 21:46
Hallo,
das Folgende Programm soll vom µC zum PC über die Serielle- Schnittstelle Daten übertragen, das funktioniert aber nicht ganz korrekt. Es kommt nur Datenmüll beim PC an, weiß jemand woran das liegt??
Ich benutze:
- ATMega8-16PI
- 3,6864MHz Quarz
- AVR-GCC




#include <io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>

#define F_CPU 3686400 // 3686Khz
#define UART_BAUD_RATE 9600 // 9600 baud
#define BAUD (F_CPU / (16L*UART_BAUD_RATE) -1)

typedef unsigned char BYTE;
typedef unsigned short WORD;

int main(void)
{
//outp (F_CPU / (UART_BAUD_RATE * 16L) - 1, UBRR);
UBRRH = (unsigned char) (BAUD >> 8);
UBRRL = (unsigned char) BAUD;

UCSRB = (1<<TXEN);

while(1)
{
while (!( UCSRA & (1<<UDRE)) );
USART_Transmit('H');
USART_Transmit('a');
USART_Transmit('l');
USART_Transmit('l');
USART_Transmit('o');
USART_Transmit((unsigned char)0x0A);
USART_Transmit((unsigned char)0x0D);
}
return 0;
}

Tux
09.05.2004, 22:51
Läuft der µC mit der Frequenz des Quarzes? Einfach mal F_CPU auf 1000000 (1MHz) setzen. Wenn es dann funktioniert läuft er noch mit dem internen Oszillator. Eventuell Fusebits nicht korrekt gesetzt?

Robo2004
10.05.2004, 09:32
Ich danke dir für dein Tip Tux.
Das scheint es gewesen zu sein.