Just_Indes
09.04.2010, 00:14
Servus,
hab ein Problem mit meinem Atmega8 Usart!
Ich möchte mal zu Beginn ganz simple Zeichen per RS232 mithilfe eines MAX232 an meinen PC schicken und mit dem HTerm empfangen.
Verwende dazu diese MAX232-Schaltung:
http://sodoityourself.com/wp-content/uploads/2007/02/circuit_232.jpg
und das ist mein Code:
#include <avr/io.h>
#include <avr/delay.h>
#define F_CPU 12000000L
#define BAUD 9600L
#define UBRR_VAL ((F_CPU+BAUD * 8)/(BAUD*16)-1) //clever runde
#define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1))) //reale Baudrate
#define BAUD_ERROR ((BAUD_REAL*1000)/BAUD-1000) //Fehler in Promille
#if ((BAUD_ERROR>10)||(BAUD_ERROR<-10))
#error Systematischer Fehler in der Baudrate größer 1% und damit zu hoch!
#endif
int main(void)
{
UBRRH = UBRR_VAL >> 8;
UBRRL = UBRR_VAL & 0xFF;
UCSRB = (1<<RXEN)|(1<<TXEN); //UART TX einschalten
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0); //Asynchron 8N1
while (!(UCSRA & (1<<UDRE))) //warten bis Senden möglich
{
}
UDR = 'x'; //schreibt das Zeichen x auf die Schnittstelle
_delay_ms(100);
return 0;
}
Einstellungen HTerm:
Baud: 9600
Data: 8
Stop: 2
muss ich im HTerm weitere Einstellungen tätigen?
Hab am TX-Pin am µC eine ständige Spannung von 3,26V und sobald ich das Programm starte geht sie kurz auf 0V runter.
Am HTerm kommt nichts an.
Danke für eure Hilfe!
LG
hab ein Problem mit meinem Atmega8 Usart!
Ich möchte mal zu Beginn ganz simple Zeichen per RS232 mithilfe eines MAX232 an meinen PC schicken und mit dem HTerm empfangen.
Verwende dazu diese MAX232-Schaltung:
http://sodoityourself.com/wp-content/uploads/2007/02/circuit_232.jpg
und das ist mein Code:
#include <avr/io.h>
#include <avr/delay.h>
#define F_CPU 12000000L
#define BAUD 9600L
#define UBRR_VAL ((F_CPU+BAUD * 8)/(BAUD*16)-1) //clever runde
#define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1))) //reale Baudrate
#define BAUD_ERROR ((BAUD_REAL*1000)/BAUD-1000) //Fehler in Promille
#if ((BAUD_ERROR>10)||(BAUD_ERROR<-10))
#error Systematischer Fehler in der Baudrate größer 1% und damit zu hoch!
#endif
int main(void)
{
UBRRH = UBRR_VAL >> 8;
UBRRL = UBRR_VAL & 0xFF;
UCSRB = (1<<RXEN)|(1<<TXEN); //UART TX einschalten
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0); //Asynchron 8N1
while (!(UCSRA & (1<<UDRE))) //warten bis Senden möglich
{
}
UDR = 'x'; //schreibt das Zeichen x auf die Schnittstelle
_delay_ms(100);
return 0;
}
Einstellungen HTerm:
Baud: 9600
Data: 8
Stop: 2
muss ich im HTerm weitere Einstellungen tätigen?
Hab am TX-Pin am µC eine ständige Spannung von 3,26V und sobald ich das Programm starte geht sie kurz auf 0V runter.
Am HTerm kommt nichts an.
Danke für eure Hilfe!
LG