[an error occurred while processing this directive]
Ответ: сделал как сказали - все равно какой-то косяк! загружаются все 255
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ziga 05 октября 2005 г. 13:18
В ответ на: У меня похожий макрос называется XLAT - из неугасимой любви к системе команд Х86 :)) отправлено =AVR= 05 октября 2005 г. 12:44

.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: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru