-
-
Hilfe ATmega2560 out of range
Ich habe folgende Probleme mit dem Microcontroller ATmega2560 und der Programmierung in Assemblar (AVR.studio)
Da ich alle Ports als I/O register verwende funktionieren folgende Befehle bei bestimmten Ports nicht!!
out, in, sbis, sbic.....
diese Befehle funktionieren nur von PortA-PortF, wenn ich diese Befehle an den anderen Ports (G-L) anwenden will, kommt error: out of range..
für die Befehle out, sbis und sbic habe ich eine andere alternative gefunden, aber leider nicht für "in"....
Konkretes Beispiel: UART Daten empfangen
kleiner Microcontroller z.B. ATmega32
sbis UCSRA,7 ;UART status Register Bit 7 setzten
rjmp getChar ;warte bis UDR bereit ist
in UARTspeicher, UDR ;liest in Register 17 UDR ein
ret ;zurück zum Ursprun
großer Microcontroller z.B. ATmega2560
lds temp, UCSR3A
sbrs temp, 7 ;UART status Register Bit 7 setzten
rjmp getChar ;warte bis UDR bereit ist
in UARTspeicher, UDR3 ;liest in Register 17 UDR ein
ret ;zurück zum Ursprun
;hier benötige iche anderen befehl für "in"
-
Erfahrener Benutzer
Roboter Experte
Die Befehle in und out funktionieren nur im Bereich der ersten 64 IO-Register. Die restlichen müssen per lds/sts gelesesn/geschrieben werden.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen