[an error occurred while processing this directive]
|
Это у тебя ЛСД неправильный. :))
Посмотри на сон грядущий, кусок кода из мозга, что работает в двух десятках изделий по всему Гондурасу:
;******* регенерация всего, чего попало *****************************Fresh: mov #RAMEND ,SPL:SPH ; ini stack
;----- port B:
mov $C0 ,ddrB ; 7,6 - out
xor $40 ,portB ; дёргаю 16-й ногой;----- port D:
mov $80 ,ddrD ; 7 - out
;----- port E,F,G:
clr ddrE,ddrF,ddrG ; all input
;----- disable/enable прерываний
clr UCSR0B, UCSR1B ; disable UART
mov tmp ,SPCR ; disable SPI
mov tmp ,ADCSRA ; disable ADC
mov tmp ,ADMUX ;mov tmp ,TIMSK ; disable interrupt TIMER 0,1,2
mov tmp ,ETIMSK ; disable interrupt TIMER 3mov tmp ,TCCR0 ; stop timer0
mov tmp ,TCCR2 ; timer2
mov tmp ,TCCR3A ; timer3
mov tmp ,TCCR3B ;mov $80 ,ACSR ; disable ANALOG COMPARATOR
mov $0F ,EICRA ; int0, int1 - rising edge
mov $80 ,EICRB ; int7 - falling edge
mov $83 ,EIMSK ; enable int 7,1,0;----- таймер 1 ------------------------;
clr TCCR1A,TCCR1C ; run timer1 with prescaler 1024
mov #5 ,r17 ;
ifne TCCR1B ,r17 ;
mov r17 ,TCCR1B ;;----- внешний память ------------------;
mov $80 ,MCUCR ; enable External RAM
mov tmp ,MCUCR ;
clr XMCRA ;
mov $02 ,XMCRB ; release PC7,PC6mov FR_csr ,E1_ssk ; читаю состояние
mov E1_load ,FR_csr ; пишу управлениеmov $FF ,tmp ; fone write to TX
if0 status.1 ;
mov tmp ,FR_data ;;----- собачка -------------------------;
mov $1F ,tmp ; enable Watchdog Timer
mov $0F ,r17 ;
disable ; для mega128 именно так!
mov tmp ,WDTCR ;
mov r17 ,WDTCR ;
enable ;
wdr ; reset his;--- reload timer ----------------------;
add #32 ,time1 ; 32x32=1024ms
Для справки: переменные FR_csr, FR_data, E1_load, time1 - внешнее ОЗУ, всё остальное - регистры, порты, и SFR АТmega128.
Учите матчасть! :)
E-mail: info@telesys.ru