📄 lcdtask.s
字号:
.module lcdtask.c
.area text(rom, con, rel)
.dbfile G:\Acceleratoion\Acceleration\lcdtask.c
.dbfunc e lcdTask _lcdTask fV
; lcdImpactCounter -> R22,R23
; lcdCurrentImpact -> R20,R21
; lcdImpactUpdated -> R10
.even
_lcdTask::
xcall push_gset3
sbiw R28,4
.dbline -1
.dbline 12
; //lcdTask.c
; #include "lcdTask.h"
; #include <iom16v.h>
; #include <macros.h>
;
; //interface
; extern unsigned short currentImpact;
; extern unsigned short impactCounter;
; extern char currentImpactUpdated;
;
; void lcdTask(void)
; {
.dbline 13
; char lcdImpactUpdated = 0;
clr R10
.dbline 17
; unsigned short lcdCurrentImpact;
; unsigned short lcdImpactCounter;
; //read interface!!!
; CLI();
cli
.dbline 18
; if(currentImpactUpdated&0x01)
lds R2,_currentImpactUpdated
sbrs R2,0
rjmp L2
.dbline 19
; {
.dbline 20
; currentImpactUpdated &= ~0x01;
mov R24,R2
andi R24,254
sts _currentImpactUpdated,R24
.dbline 21
; lcdImpactUpdated = 1;
clr R10
inc R10
.dbline 22
; lcdCurrentImpact = currentImpact;
lds R20,_currentImpact
lds R21,_currentImpact+1
.dbline 23
; lcdImpactCounter = impactCounter;
lds R22,_impactCounter
lds R23,_impactCounter+1
.dbline 24
; }
L2:
.dbline 25
sei
.dbline 28
tst R10
breq L4
.dbline 29
.dbline 30
std y+3,R23
std y+2,R22
ldi R24,4
std y+0,R24
ldi R18,4
clr R16
xcall _lcdWriteNumber
.dbline 31
std y+3,R21
std y+2,R20
ldi R24,4
std y+0,R24
ldi R18,4
ldi R16,1
xcall _lcdWriteNumber
.dbline 32
L4:
.dbline -2
L1:
adiw R28,4
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r lcdImpactCounter 22 s
.dbsym r lcdCurrentImpact 20 s
.dbsym r lcdImpactUpdated 10 c
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -