/* SLdt 240809 Disclaimer: none. Sue me. ATmega162 (8515): external RAM per Software https://www.mikrocontroller.net/topic/570080#new Adresse in XH,XL Daten in data avrasm2 */ .def data = r18 ext_init: ldi tmp0,$FF out DDRC,tmp0 ; address high byte cbi PORTE,1 sbi DDRE,1 ; ALE sbi PORTD,7 sbi DDRD,7 ; /RD sbi PORTD,6 sbi DDRD,6 ; /WR ret ;---------------------- ext_write: ; data -> (x) rcall ext_addr_set out PORTA,data cbi PORTD,6 ; /WR sbi PORTD,6 ret ;---------------------- ext_read: ; data <- (x) rcall ext_addr_set ldi tmp0,$00 out DDRA,tmp0 cbi PORTD,7 ; /RD sbi PORTD,7 in data,PINA ret ;---------------------- ext_addr_set: ; x out PORTC,XH ldi tmp0,$FF out DDRA,tmp0 out PORTA,XL sbi PORTE,1 ; ALE cbi PORTE,1 ret