hi, habe grade im simulator festgestellt, dass UCSR0C |= (3<<UCSZ00); //Asynchron 8N1 UBRR0H auf 0x06 setzt. warum das? wenn man jetzt die baudrate setzt bevor man UCSZ setzt, hat man ein problem...!? btw ist UCSR0C |= (3<<UCSZ00); ja initial, man könnte sich das also sparen und UBRR wird nicht gesetzt.
Welcher Controller? Bei einigen AVRs muss das Bit URSEL gesetzt sein, wenn man auf UCSRC zugreift! Bei denen sind UBRRH und UCSRC auf der selben Adresse. In den Forenregeln steht übrigens eindeutig, dass der Controllertyp im Betreff anzugeben ist!
>Welcher Controller? Bei einigen AVRs muss das Bit URSEL gesetzt sein, >wenn man auf UCSRC zugreift! Bei denen sind UBRRH und UCSRC auf der >selben Adresse. mega644 (sorry :) ) ist hier nicht der fall.
Upps, hatte die 0 übersehen... Beim Simulator sollte man aber generell bei solchen Vorkommnissen in den Known Issues nachsehen, ob das evtl. ein bekannter Bug ist. Da gibt's nämlich ne ganze Menge von.
Hallo, das würde ich mal als Bug ansehen, hab's gerade mal in einem Projekt von mir angeschaut, auch dort wird die 0x06 gesetzt, aber im realen Controller geht's richtig - die Baudrate stimmt. Sascha
Sascha wrote: > das würde ich mal als Bug ansehen, hab's gerade mal in einem Projekt von > mir angeschaut, auch dort wird die 0x06 gesetzt, aber im realen > Controller geht's richtig - die Baudrate stimmt. Jo. Und wenn Du (wie von mir oben vorgeschlagen) in den Known Issues in der AVRStudio-Hilfe nachgesehen hättest, dann hättest Du es gar nicht ausprobieren müssen. Da steht es nämlich...
da steht auch, dass man simulator 2 nutzen soll. der macht das nicht.
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.