📄 timer0.lis
字号:
.module Timer0.c
.area vector(rom, abs)
.org 64
0040 0C940000 jmp _timer0_txd_srv
.area text(rom, con, rel)
0000 .dbfile E:\Projects\AVR\Timer_Send\Timer0.c
0000 .dbfunc e timer0_txd_srv _timer0_txd_srv fV
0000 ; num_tmr -> R20
.even
0000 _timer0_txd_srv::
0000 0E940000 xcall push_lset
0004 0E940000 xcall push_gset1
0008 .dbline -1
0008 .dbline 13
0008 .dbline 14
0008 4427 clr R20
000A .dbline 15
000A 85EB ldi R24,181
000C 82BF out 0x32,R24
000E .dbline 17
000E 0E940000 xcall _transmit
0012 .dbline 19
0012 80910000 lds R24,_count
0016 8F30 cpi R24,15
0018 F0F4 brsh L2
001A .dbline 20
001A .dbline 21
001A 22E0 ldi R18,2
001C 30E0 ldi R19,0
001E 00E0 ldi R16,<_data_array01
0020 10E0 ldi R17,>_data_array01
0022 0E940000 xcall _EnQueue
0026 .dbline 22
0026 24E0 ldi R18,4
0028 30E0 ldi R19,0
002A 00E0 ldi R16,<_data_array02
002C 10E0 ldi R17,>_data_array02
002E 0E940000 xcall _EnQueue
0032 .dbline 23
0032 23E0 ldi R18,3
0034 30E0 ldi R19,0
0036 00E0 ldi R16,<_data_array03
0038 10E0 ldi R17,>_data_array03
003A 0E940000 xcall _EnQueue
003E .dbline 24
003E 23E0 ldi R18,3
0040 30E0 ldi R19,0
0042 00E0 ldi R16,<_data_array04
0044 10E0 ldi R17,>_data_array04
0046 0E940000 xcall _EnQueue
004A .dbline 25
004A 2FE0 ldi R18,15
004C 30E0 ldi R19,0
004E 00E0 ldi R16,<_data_array05
0050 10E0 ldi R17,>_data_array05
0052 0E940000 xcall _EnQueue
0056 .dbline 26
0056 L2:
0056 .dbline -2
0056 .dbline 29
0056 ; #include "iom128v.h"
0056 ; #include "macros.h"
0056 ; //------------------------------------------------------------------
0056 ; extern unsigned char count;
0056 ; extern unsigned char data_array01[32];
0056 ; extern unsigned char data_array02[32];
0056 ; extern unsigned char data_array03[32];
0056 ; extern unsigned char data_array04[32];
0056 ; extern unsigned char data_array05[32];
0056 ; //------------------------------------------------------------------
0056 ; #pragma interrupt_handler timer0_txd_srv:17
0056 ; void timer0_txd_srv(void)
0056 ; {
0056 ; unsigned char num_tmr=0;
0056 ; TCNT0=0xb5; //计数值重装
0056 ;
0056 ; transmit();
0056 ;
0056 ; if(count<(20-5))
0056 ; {
0056 ; EnQueue(data_array01,2);
0056 ; EnQueue(data_array02,4);
0056 ; EnQueue(data_array03,3);
0056 ; EnQueue(data_array04,3);
0056 ; EnQueue(data_array05,15);
0056 ; }
0056 ;
0056 ;
0056 ; }
0056 L1:
0056 0E940000 xcall pop_gset1
005A 0E940000 xcall pop_lset
005E .dbline 0 ; func end
005E 1895 reti
0060 .dbsym r num_tmr 20 c
0060 .dbend
0060 .dbfunc e timer0_init _timer0_init fV
.even
0060 _timer0_init::
0060 .dbline -1
0060 .dbline 32
0060 ; //------------------------------------------------------------------
0060 ; void timer0_init(void)
0060 ; {
0060 .dbline 33
0060 ; TIMSK=0x01;
0060 81E0 ldi R24,1
0062 87BF out 0x37,R24
0064 .dbline 34
0064 ; TCCR0=0x00;
0064 2224 clr R2
0066 23BE out 0x33,R2
0068 .dbline 35
0068 ; TCNT0=0xb5; //20ms的计数值
0068 85EB ldi R24,181
006A 82BF out 0x32,R24
006C .dbline 37
006C ;
006C ; TCCR0=0x07;
006C 87E0 ldi R24,7
006E 83BF out 0x33,R24
0070 .dbline -2
0070 .dbline 38
0070 ; }
0070 L4:
0070 .dbline 0 ; func end
0070 0895 ret
0072 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -