Schönen guten Abend erstmal. Ich habe folgendes Problem. Ich habe einen Mikrocontroller(Atmega32) mit disem möchte ich eine RS232 Verbindung mit meinem PC aufbauen. Eigentlich möchte ich nur ein Zeichen erstmal senden. Ich habe ein kleines Programm dafür auf Bascom geschreiben, um zu Testen ob Hartwaremässig alles stimmt. Dort ging es wunderbar. Jetzt schreibe ich das Ganze in C (weil Bascom auch nicht gerade das Ware ist und ich C lernen will). Als Compiler benutze ich Code:Blocks. Ich brauche mehr Details: Frequenz: 16Mhz Baude: 9600 Include Datein: #include <avr/io.h> Code(Ini): //Baudrate von 9600 UBRRH = 100; //Schaltet RS232 ein UCSRB |= (1 << TXEN); //Asynchron 8N1 UCSRC = (1 << URSEL)|(1 << UCSZ1)|(1 << UCSZ0); Code(main und senden): int main(void) { Ini(); Led_Weiss_Pwm(1023); while (!(UCSRA & (1<<UDRE))) /* warten bis Senden Senden möglich */ { } UDR = 'x'; while(1) { } return 0; } Habe den ganzen Quellcode auch noch angehangen. Vielen dank für eure Hilfe. Mathias
Hi
> UBRRH = 100;
Wie bist du denn darauf gekommen?
Bei 16MHz und 9600Bd ergibt sich ein Wert von 103 für UBRR .
MfG Spess
Ich habe UBRRH auf 103 geändert es tut sich leider trotzdem nichts. MfG Mathias
Hi
>Ich habe UBRRH auf 103 geändert es tut sich leider trotzdem nichts.
Ich habe UBRR nicht UBRRH geschrieben.
MfG Spess
Bei UBRR bekomme ich ein Error. error: 'UBRR' undeclared (first use in this function) Deshalb habe ich UBRRH genommen. Da kommt dieser Fehler nicht. Wie unfreundlich von mir. Ich habe mich noch garnicht bedankt für deine Hilfe. Vielen dank. MfG Mathias
Danke genau in disem Moment habe ich den Felher auch gefunden. Habe es jetz so geändert: UBBRH = 0; UBBRL = 103; Jetzt funktioniert es. Danke für eure Hilfe. MfG Mathias
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.