Hallo Leute, ich versuch mit WinAVR ein Programm zu schreiben, das mir über den UART meines ATmega32 ein paar Zeichen zum PC sendet. Dafür hab ich eine Funktion UART_init geschrieben die mir den UART initialisieren soll. Compilieren funktioniert ohne Probleme, beim debuggen spring er allerdings nicht in UART_init. Kann es sein das der Compiler das Unterprogramm wegoptimiert?? WAs kann ich dagegen machen? Bei Gelegenheit vielleicht noch ein Tip ob die Übertragung auf diese Weise funktionieren könnte! Danke, Stefan Hab das Programm mal drangehängt. #include <avr/io.h> void UART_init(void) { // Baudrate einstellen sbi(UBRRH,7); // Zugriff auf UBRRH ermöglichen UBRRH = (UBRRH | 0x00); UBRRL = 0x17; // 9600 bps // Frame Format einstellen cbi(UCSRC,7); // Zugriff auf UCSRC cbi(UCSRC,6); // Asynchrone Übertragung UCSRC = (UCSRC | 0x10); // Even Parity cbi(UCSRC,3); // 1 Stop Bit UCSRC = (UCSRC | 0x03); // 8 Datenbit cbi(UCSRB,2); // RxD, TxD freischalten sbi(UCSRB,3); // TxD Pin freischalten sbi(UCSRB,4); // RxD Pin freischalten } void send_fkt(char byte) { while ( !(UCSRA & (1<<UDRE))); UDR = byte; } int main(void) { UART_init; while(1) { send_fkt("O"); // Zeichen übertragen send_fkt("k"); send_fkt(" "); } return 0; }
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.