Dirk M
15.06.2007, 15:09
Hallo
Bekomme es mit dem ATtiny2313 einfach nicht hin Daten an den PC zusenden [-(
Es soll eine 8-N-1 Verbindung mit einem 9600 Baud sein.
Hier mein bisheriger Code:
#include <avr/io.h>
#define F_CPU 7372800 // 7,3728 Mhz
#include <util/delay.h>
#define UART_BAUD_RATE 9600
#define UART_BAUD_CALC(UART_BAUD_RATE,F_CPU) ((F_CPU)/((UART_BAUD_RATE)*16l)-1)
void usart_putc(unsigned char c)
{
// warten bis UDR bereit ist
while(!(UCSRA & (1 << UDRE)));
UDR = c; // sende Zeichen
}
int main(void)
{
UCSRC = (1<<USBS)|(3<<UCSZ0);
UCSRB = (1 << TXEN);
UBRRH = (uint8_t)(UART_BAUD_CALC(UART_BAUD_RATE,F_CPU)>>8);
UBRRL = (uint8_t)UART_BAUD_CALC(UART_BAUD_RATE,F_CPU);
while(1)
{
usart_putc('M');
_delay_ms(300);
}
}
Es kommt einfach garnichts an...
Hardware scheint aber ok zu sein, wenn ich den Controller aus dem Sockel entferne und TX/RX Verbinde, empfängt der PC das was er auch sendet...
Schonmal vielen Dank :-)
Gruß
Dirk
Bekomme es mit dem ATtiny2313 einfach nicht hin Daten an den PC zusenden [-(
Es soll eine 8-N-1 Verbindung mit einem 9600 Baud sein.
Hier mein bisheriger Code:
#include <avr/io.h>
#define F_CPU 7372800 // 7,3728 Mhz
#include <util/delay.h>
#define UART_BAUD_RATE 9600
#define UART_BAUD_CALC(UART_BAUD_RATE,F_CPU) ((F_CPU)/((UART_BAUD_RATE)*16l)-1)
void usart_putc(unsigned char c)
{
// warten bis UDR bereit ist
while(!(UCSRA & (1 << UDRE)));
UDR = c; // sende Zeichen
}
int main(void)
{
UCSRC = (1<<USBS)|(3<<UCSZ0);
UCSRB = (1 << TXEN);
UBRRH = (uint8_t)(UART_BAUD_CALC(UART_BAUD_RATE,F_CPU)>>8);
UBRRL = (uint8_t)UART_BAUD_CALC(UART_BAUD_RATE,F_CPU);
while(1)
{
usart_putc('M');
_delay_ms(300);
}
}
Es kommt einfach garnichts an...
Hardware scheint aber ok zu sein, wenn ich den Controller aus dem Sockel entferne und TX/RX Verbinde, empfängt der PC das was er auch sendet...
Schonmal vielen Dank :-)
Gruß
Dirk