Forum: Mikrocontroller und Digitale Elektronik UART atMega168 senden (ASM)


von herberdt (Gast)


Lesenswert?

Hi,
hab nin kleines Problem mit Registerzugriffen in asm auf einem meg168:
1
transmit:
2
    sbis    UCSRA,UDRE          ; Warten, bis UDR bereit ist ...
3
    rjmp    transmit
4
    out     UDR, zeichen        ; und Zeichen ausgeben
5
    ret
diesen teil hab ich ausm forum für den mega8 gefunden, nur leider kann 
der mega168 nicht mit sbis bzw. out auf die register zugreifen, könnt 
ihr mir helfen?
gl herberdt

von Johannes M. (johnny-m)


Lesenswert?

herberdt wrote:
> nur leider kann
> der mega168 nicht mit sbis bzw. out auf die register zugreifen, könnt
> ihr mir helfen?
Man kann generell nur auf Register zugreifen, die der betreffende 
Controller auch hat. Und ein UDR bzw. UCSRA gibt es beim Mega168 nicht! 
Schau bitte ins Datenblatt, wie die Register dort heißen!

Abgesehen davon liegen die Steuerregister des USART beim Mega168 im 
extended I/O-Space und lassen sich deshalb auch nicht mit in, out, sbic 
und sbis ansprechen. Da musst Du schon lds und sts nehmen und zum 
Bit-Prüfen den Registerinhalt in ein Rechenregister laden und dort die 
Abfrage machen.

Merke: Zum Arbeiten mit einem Mikrocontroller gehört grundsätzlich 
neben den allgemeinen Fachkenntnissen das griffbereite Datenblatt! Und 
zwar völlig unabhängig davon, in welcher Programmiersprache man den 
programmieren will.

von herberdt (Gast)


Lesenswert?

jo danke erstmal, werd mich gleich nochmal ransetzen

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.