PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe ATmega2560 out of range



Freeclimber
09.05.2008, 09:16
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"

p_mork
09.05.2008, 13:10
Die Befehle in und out funktionieren nur im Bereich der ersten 64 IO-Register. Die restlichen müssen per lds/sts gelesesn/geschrieben werden.