Zaczynam pisać w asemblerze dla AVR.
Mam pytanie ktore zostało już opisane tylko nie jestem pewiemn czy dobrze to zrozumialem. Chodzi mi o :
Kurs asemblera dla AVR w przykładach i Pierwszy program - zapalanie i gaszenie diody LED.
Wariant II
.def acc = r16 ; r16 teraz ma nazwę acc
To zrozumiałe nadaje rejestrowi nazwę - definiuje zmienną.
Dalej
To też zrozumiałem nazwie po lewej stronie równania (nadanej) odpowiada rejesrt bądż pin..equ KeyPort = PORTD ;
.equ LEDPort = PORTB ;
.equ Key0Pin = 0 ;
.equ Key1Pin = 1 ;
.equ LEDPin = 0 ;
; Powyżej definiujemy podstawowe parametry programu, to jest
; określamy stałą o nazwie KeyPort (ze wskazaniem na port D) jako port
; przycisków. Analogicznie określona jest stała LEDPort na oznaczenie
; portu, do którego jest przyłączona dioda LED. Dalej uszczegółowione są
; położenia przycisków oraz diody LED jako numerów bitów w portach.
; Tylko te stałe należy modyfikować w przypadku innej parametryzacji.
;-------------------------------------------------------------------------------------
Problem mam ze zrozumieniem poniższej części
Ja to tak rozumię:.equ KeyPDirection = KeyPort - 1 ;
.equ LedPDirection = LEDPort - 1 ;
.equ KeyPins = KeyPort - 2 ;
; Dodatkowo określone są rejestry związane z konfiguracją pinów
; (wejście/wyjście) użytych portów (adres portu kierunku jest o 1 mniejszy
; od portu danych: DDRB ma adres $17, a PORTB ma adres $18, DDRD ma
; adres $11, a POTRD ma adres $12. Względne przesunięcie adresowe
; rejestru kierunku (DDRx) oraz rejestru stanu pinów (PINx) w stosunku
; do rejestru danych (PORTx) jest stałe. Zmiana wartości stałych LEDPort
; lub KeyPort spowoduje, że wymienione stałe będą nadążały same za
; tymi zmianami."
KeyPort - 1(Pinowi 1 portu D) przypisana zostaje stała KeyPDirection
Analogicznie też z pozostałymi 2 liniami.
Nie rozumię jak dodatkowo określone są rejestry.
Niedawno "przesiadłem się" z 51 na avr i dlatego te pytania
Grzegorz.