Gast
#75558
Hi, ich hab ein kleines problem beim Senden über das UART des Mega16. Ich habe das eigendlich so gemacht wie es im AVR-GCC Tutorial vorgeschrieben ist nur die entsprechenden Register gegen die Richtigen ausgetauscht so sieht der source aus #include <avr/io.h> #include <stdarg.h> #include <ctype.h> #include <string.h> #define F_CPU 8000000 // 16Mhz #define UART_BAUD_RATE 9600 // Baud 9600 // Berechnen des Inahltes des UBBRL Registers #define UART_BAUD_SELECT (F_CPU/(UART_BAUD_RATE*16l)-1) // Datentypedefinieren typedef unsigned char BYTE; typedef unsigned short WORD; // Funktionsprototypen void UartInit (void); void UartWrite (BYTE c); int main (void) { // Initalisieren des UARTs UartInit (); //for (;;) { // sende ein t outp ('t',UDR); //} } void UartInit (void) { //UART Control Register Laden outp ((1 << TXEN), UCSRB); // Baudrate setzen outp ((BYTE) UART_BAUD_SELECT, UBRRL); } Der MAX232 Arbeitet richtig und die Signale die rauskommen kommen auch am pin 2 des kabels an. Also an der Hardware kanns eigendlich nicht leigen ... ich benutze im moment noch den internen Oszilator mit 8Mhz ) Moritz Veit