roboforum.ruТехнический форум по робототехнике. |
|
|
arm-17 писал(а):Не получается добавить программу можно я на Mail скину
C:\avr\test\impulse.asm(23): warning: Register r11 already defined by the .DEF directive
C:\avr\test\impulse.asm(29): warning: Register r16 already defined by the .DEF directive
Ладно, мы зациклены в основном цикле "inf", в котором ничего не происходит. Давай поставим курсор на "rjmp Forward" и правой кнопкой мыши выберем "set next Statement". Жмем f11, перешли на "Forward:"
ldi r16,0x01 ;Команда очистки дисплея
mov tASCII4, cnt16a
mov tASCII3, cnt16a
mov tASCII2, cnt16a
;**********************************************************************
;Печать счетчика на lcd
rcall bin2ASCII16
mov temp1,0x30 ;смещение для ASCII кода
_add_ tASCII4,temp1 ;преобразовать десятичный код в ASCII
_add_ tASCII3,temp1 ;
_add_ tASCII2,temp1 ;
_add_ cnt16a,temp1 ;
_add_ fASCIIL,temp1 ;
;вывод на lcd
mov temp1,tASCII4
rcall LCD_WriteData
mov temp1,tASCII3
rcall LCD_WriteData
mov temp1,tASCII2
rcall LCD_WriteData
mov temp1,cnt16a
rcall LCD_WriteData
mov temp1,fASCIIL
rcall LCD_WriteData
;**********************************************************************
;Число должно быть в r16,чтоб отобразить на LCD
; rcall LCD_WriteData
arm-17 писал(а):А как из этого числа отнять или прибавить 1-у?
.def CountLow =r24
.def CountHigh =r25
clr flags ;сбросить флаги
clr CountLow ;сбросить двоичный счетчи
clr CountHigh ;
;**********************************************************************
Forward:
cbr flags, (1__EventForward);сбросить флаг,обработали событие
adiw CountHigh:CountLow,1 ;инкремент 16-ти битного счетчика
rcall PrintASCII
ret
;**********************************************************************
Back:
cbr flags, (1__EventRevers) ;сбросить флаг,обработали событие
sbiw CountHigh:CountLow,1 ;декремент 16-ти битного счетчика
rcall PrintASCII
ret
;**********************************************************************
;**********************************************************************
PrintASCII:
mov fASCIIL,CountLow ;переслать счетчик в регистры 10-ой коррекции
mov fASCIIH,CountHigh ;
rcall bin2ASCII16 ;десятичная коррекция
;преобразовать десятичный код в ASCII
ldi temp1,0x30 ;Смещение для ASCII кода
_add_ tASCII4,temp1 ;r15
_add_ tASCII3,temp1 ;r14
_add_ tASCII2,temp1 ;r13
_add_ cnt16a, temp1 ;r19
_add_ fASCIIL,temp1 ;r23
;вывод на lcd
mov temp1,tASCII4
; rcall LCD_WriteData
mov temp1,tASCII3
; rcall LCD_WriteData
mov temp1,tASCII2
; rcall LCD_WriteData
mov temp1,cnt16a
; rcall LCD_WriteData
mov temp1,fASCIIL
; rcall LCD_WriteData
ret
;**********************************************************************
arm-17 писал(а):Я работаю в очень крупной лифтовой компании Ведущим инженером.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1