Du musst auf der µC des MAX232 die RX/TX die Verbindung machen, wenn dann kein Echo kommt, hat es ein Problem mit der Verbindung zum PC.So sollte es dauernd ein X am PC ausgeben, es ist sicherer falls etwas verschluckt wird.Code:#define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> #define BAUD 38400UL // Baudrate // Berechnungen #define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1) // clever runden #define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1))) // Reale Baudrate #define BAUD_ERROR ((BAUD_REAL*1000)/BAUD) // Fehler in Promille, 1000 = kein Fehler. #if ((BAUD_ERROR<990) || (BAUD_ERROR>1010)) #error Systematischer Fehler der Baudrate grösser 1% und damit zu hoch! #endif void USART_transmit(unsigned int data){ while (!(UCSRA & (1<<UDRE))) { UDR = data; } } int main(void) { UCSRB = (1<<TXEN); // UART TX einschalten UCSRC = (1<<URSEL)|(3<<UCSZ0); // Asynchron 8N1 UBRRH = UBRR_VAL >> 8; UBRRL = UBRR_VAL & 0xFF; unsigned int data = 'X'; for(;;){ USART_transmit(data); } }
Lesezeichen