Forum: Mikrocontroller und Digitale Elektronik AVR4Studio hat nen Bug?


von chris (Gast)


Lesenswert?

Hallo Forum

Thema ist die USART, funktioniert auch, nur mein problem ist das wenn 
ich USRC schreiben will das Studio mir auch die Bits ins UBRH schreibt 
obwohl  das URSEL=1 ist.

Wie kann ich das problem beheben???

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

chris schrieb:
> AVR4Studio hat nen Bug?

Mehrere sogar.

chris schrieb:
> Wie kann ich das problem beheben???

Indem Du erstmal für eine Flut an Informationen sorgst: Controller? 
Simulator? Screenshots? Und so weiter.

von holger (Gast)


Lesenswert?

>ich USRC schreiben will das Studio mir auch die Bits ins UBRH schreibt

Sicher tut das, die beiden teilen sich dieselbe Adresse;)

von spess53 (Gast)


Lesenswert?

Hi

Ist doch bekannt:

Known Issues in AVR Simulator 1

UART/USART
....
'When writing to UCSRC, the value will be copied to UBRRH unless bit 7 
is also set in in the same write operation. This behaviour is erroneous 
on devices that have separate locations for these registers. Another 
workaround is to write UBRRH after UCSRC.'

MfG Spess

von chris (Gast)


Angehängte Dateien:

Lesenswert?

>chris schrieb:
>> Wie kann ich das problem beheben???

>Indem Du erstmal für eine Flut an Informationen sorgst: Controller?
>Simulator? Screenshots? Und so weiter.

@Knut Ballhause

jo damit kann ich dienen, das problem ist, das dass URSEL=0 ist und 
damit in UBRRHI schreibt, so nun lade ich den Wert $8e in register, 
URSEL=1 und sollte dann ins UCSRC schreiben.

TUTS leider nicht das problem was sich daraus ergibt ist das meine Daten 
mit 19200Baud anstatt mit 9600Baud übertragen wird.

Bilder + Programm im Anhang

von Simon K. (simon) Benutzerseite


Lesenswert?

Knut Ballhause schrieb:
> Indem Du erstmal für eine Flut an Informationen sorgst: Controller?
> Simulator? Screenshots? Und so weiter.

Sourcecode...

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Du verwendest UBRRHI in deinem Code, ich kenne aber nur UBRRH als 
Registerdefinition. Falls ich ´was übersehen habe, tut´s mir leid.

von Simon K. (simon) Benutzerseite


Lesenswert?

Oh, da habe ich einen Beitrag übersehen. Entschuldige!

von holger (Gast)


Lesenswert?

>TUTS leider nicht das problem was sich daraus ergibt ist das meine Daten
>mit 19200Baud anstatt mit 9600Baud übertragen wird.

Vieleicht läuft der uC ja auch statt mit 4Mhz mit 8MHz;)

von chris (Gast)


Lesenswert?

@holger

nein in den einstellungen sind 4mhz eingestellt

@Knut Ballhause

UBRRHI=UBRH ist auch in der .inc so angegeben

@alle

ich werde mal ne alte avr-version probieren denn ich weiss definitiv das 
die software funktioniert hat

von Michael H. (michael_h45)


Lesenswert?

spess53 schrieb:
> Ist doch bekannt:
>
> Known Issues in AVR Simulator 1
>
> UART/USART
> ....
> 'When writing to UCSRC, the value will be copied to UBRRH unless bit 7
> is also set in in the same write operation. This behaviour is erroneous
> on devices that have separate locations for these registers. Another
> workaround is to write UBRRH after UCSRC.'

von spess53 (Gast)


Lesenswert?

Hi

>ich werde mal ne alte avr-version probieren denn ich weiss definitiv das
>die software funktioniert hat

Nochmal. Das ist ein bekannter Bug. Siehe 'Known Issues in AVR Simulator 
1' in der Hilfe oder, das was ich weiter oben schon zitiert habe.

MfG Spess

von chris (Gast)


Lesenswert?

@spess53

von einigen bugs habe ich gehört.

@all

ich werde noch nen bisschen probiern dank an alle für die hilfe

von spess53 (Gast)


Lesenswert?

Hi

>ich werde noch nen bisschen probiern dank an alle für die hilfe

Was willst du eigentlich noch probieren? Um es richtig zu stellen: Der 
Bug ist nur im Simulator. Der Assembler/Compiler und die Programme 
arbeiten fehlerfrei. Und wenn du UBRRH nach UCSRC beschreibst stimmt es 
sogar im Simulator.

MfG Spess

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
Noch kein Account? Hier anmelden.