[an error occurred while processing this directive]
|
.include "2313def.inc"
.include "descript.h"
.CSEG
MAIN:
.ORG 0
;For 2313 interrupt table
rjmp RESET
reti
reti
reti
reti
RJMP TIM1_OVF
rjmp TIM0_OVF
rjmp uart_rxc
rjmp uart_dre
RETI ;rjmp uart_txc
RETI ;rjmp ana_comp
;+++++++++++++++++++++++++++++++++++++++++ MAIN PROGRAMM +++++++++++++++++++++++++++
RESET: CLI
ldi r16,LOW(RAMEND)
OUT SPL, r16
;-----------------------------------------------------------------------------------------*
; INITIALAZING TIMER_COUNTER, SPI, UART,
LDI R16,0b00000010
OUT DDRD,R16
LDI R16,0b00000101 ;Timer/counter control register
OUT TCCR0,R16 ;Source frequency of TC0 is CK/1024
LDI R16,0 ;timer 1 initialisation
OUT TCCR1A,R16
LDI R16,0b00000101 ; 100- PRESCALLING CK/256
CLR R2
sei ;Global interrupt enable
;--------------------------------------------------------------------
START: RCALL Looking_TE
SBI PORTB,4 ;SIREN ;SHORT CRY OF PORTB,4 ;SIREN
LDI R16,15
RCALL WAIT
CBI PORTB,4
;++++++++++++++++++++++++++++++++++++++++
Looking_TE: SBI PORTD,1
LDI R25,5
SET
BLD FlagReg2,LOOK_TE
No_TE: ldi ZH,HIGH(CmdATA*2) ; Address of command ldi ZL,LOW(CmdATA*2) ;
LDI R17,60 ; TIME_OUT constant = 0.4sec LDI R18,0 ;
RCALL SMART_SEND ; Send command and wait for an answer
DEC R25 ; dec counter of attempts
BREQ NO_MORE_LOOK
sbrs FlagReg,TE_ANSW ; Test if TE answerd rjmp No_TE
ret
;++++++++++++++++++++++++++++++++++++++++
SMART_SEND: LDI R19,2 ;ATTEMPT COUNTER
SMART_SEND1: PUSH R30
PUSH R31
LDI R16,30
RCALL WAIT
SBRC FlagReg2,CHARGING ;if no charge mode do not
RCALL OFF_T1 ;off timer 1
SBRC FlagReg,NO_NEED_CLRAM
RJMP CFR2
ldi r28,LOW (OutputArr) ;CopyFlash2Ram Z - copy from Y - copy to
ldi r29,0
CFR1: LPM ;здесь и происходит косяк
inc R30 ;зову CmdATA , а получаю все FF
ST Y+,R0
mov r16,r0
cpi r16,255
brne CFR1
CFR2: LDI R26,LOW (OutputArr) ;X=Output array
LDI R27,0 ;
LDI R28,LOW(InputArr) ;Y=Input array
LDI R29,0 ;
ldi r16,20 ;
sts TIMEL,r16 ; TIMEL=10
CLT ;
BLD FlagReg,TIME_OUT ; TIME_OUT = False
BLD FlagReg,COM_SND ; COM_SND=False
SBI UCR,TXEN ; transmitter ON
SBI UCR,UDRIE ; INT from UDRE ON
ret
;++++++++++++++++++++++++++
CmdSPBG1: .db AT^SPBG=1,13,255
CmdSPBG2: .db AT^SPBG=2,13,255
СmdATA: .db 10,10,10,10 ;ATA,13,255
.exit
E-mail: info@telesys.ru