manu_f
27.03.2007, 19:18
hallo zusammen,
habe wieder mal ein problem.
versuche gerade einen text über uart an meinen pc zu senden. leider kommt nichts an und der pegel von tx bleibt auf -8,3V stehn.
der µC ist ein Atmega32.
das programm habe ich irgendwo im forum gefunden:
// AVR-Includes
#include <avr/io.h>
// Defines
#define F_CPU 4000000 // Hier die Taktfrequenz in Hz eingeben
#define UART_BAUD_RATE 9600 // Hier die gewünschte Baudrate
#define UART_BAUD_SELECT (F_CPU/(UART_BAUD_RATE*16L)-1)
// Funktionen
// -=> UART initialisieren <=-
void UART_init(void){
UBRRL |= (uint8_t) UART_BAUD_SELECT;
UCSRB = (1<<RXEN)|(1<<TXEN);
UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
}
// -=> Byte Transmit <=-
void UART_transmit(uint8_t c){
while(!(UCSRA & (1<<UDRE)));
UDR = c;
}
// -=> String Transmit <=-
void UART_transmit_string(uint8_t *string){
while(!(UCSRA & (1<<UDRE)));
while( *string){ UART_transmit (*string++); }
}
int main (void)
{
UART_init(); // UART-Init Funktion ausführen
while(1)
{
UART_transmit_string("Test");
waitms(500);
}
}
wäre super wenn mir jemand helfen könnte, steh gerade auf den schlauch!
viele grüße
Manu
habe wieder mal ein problem.
versuche gerade einen text über uart an meinen pc zu senden. leider kommt nichts an und der pegel von tx bleibt auf -8,3V stehn.
der µC ist ein Atmega32.
das programm habe ich irgendwo im forum gefunden:
// AVR-Includes
#include <avr/io.h>
// Defines
#define F_CPU 4000000 // Hier die Taktfrequenz in Hz eingeben
#define UART_BAUD_RATE 9600 // Hier die gewünschte Baudrate
#define UART_BAUD_SELECT (F_CPU/(UART_BAUD_RATE*16L)-1)
// Funktionen
// -=> UART initialisieren <=-
void UART_init(void){
UBRRL |= (uint8_t) UART_BAUD_SELECT;
UCSRB = (1<<RXEN)|(1<<TXEN);
UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
}
// -=> Byte Transmit <=-
void UART_transmit(uint8_t c){
while(!(UCSRA & (1<<UDRE)));
UDR = c;
}
// -=> String Transmit <=-
void UART_transmit_string(uint8_t *string){
while(!(UCSRA & (1<<UDRE)));
while( *string){ UART_transmit (*string++); }
}
int main (void)
{
UART_init(); // UART-Init Funktion ausführen
while(1)
{
UART_transmit_string("Test");
waitms(500);
}
}
wäre super wenn mir jemand helfen könnte, steh gerade auf den schlauch!
viele grüße
Manu