tools.lis
来自「文档里面的代码是可以正常使用的」· LIS 代码 · 共 126 行
LIS
126 行
.module tools.c
.area data(ram, con, rel)
0000 _eeprom_sck_period::
0000 .blkb 1
.area idata
0000 0A .byte 10
.area data(ram, con, rel)
0001 .dbfile E:\ICCAVR\icc\stk500\avrasp\tools.c
0001 .dbsym e eeprom_sck_period _eeprom_sck_period c
.area vector(rom, abs)
.org 22
0016 00C0 rjmp _T1_OCR1A
.area data(ram, con, rel)
0001 .dbfile E:\ICCAVR\icc\stk500\avrasp\tools.c
.area text(rom, con, rel)
0000 .dbfile E:\ICCAVR\icc\stk500\avrasp\tools.c
0000 .dbfunc e T1_OCR1A _T1_OCR1A fV
.even
0000 _T1_OCR1A::
0000 8A93 st -y,R24
0002 8FB7 in R24,0x3f
0004 8A93 st -y,R24
0006 .dbline -1
0006 .dbline 14
0006 ;
0006 ; #include "stk500.h"
0006 ;
0006 ; static unsigned char t1_tick;
0006 ;
0006 ; //Konstanten im EEPROM
0006 ; //#define EEPROM __attribute__ ((section (".eeprom")))
0006 ;
0006 ; //Variablen im EEPROM
0006 ; //EEPROM unsigned char eeprom_sck_period=10;
0006 ; unsigned char eeprom_sck_period=10;
0006 ;
0006 ; #pragma interrupt_handler T1_OCR1A: 12
0006 ; void T1_OCR1A(void) {
0006 .dbline 15
0006 ; t1_tick=1;
0006 81E0 ldi R24,1
0008 80930000 sts _t1_tick,R24
000C .dbline -2
000C L2:
000C 8991 ld R24,y+
000E 8FBF out 0x3f,R24
0010 8991 ld R24,y+
0012 .dbline 0 ; func end
0012 1895 reti
0014 .dbend
0014 .dbfunc e get_t1_tick _get_t1_tick fc
.even
0014 _get_t1_tick::
0014 .dbline -1
0014 .dbline 18
0014 ; }
0014 ;
0014 ; unsigned char get_t1_tick(void) {
0014 .dbline 19
0014 ; if(t1_tick) {
0014 20900000 lds R2,_t1_tick
0018 2220 tst R2
001A 29F0 breq L4
001C .dbline 19
001C .dbline 20
001C ; t1_tick=0;
001C 2224 clr R2
001E 20920000 sts _t1_tick,R2
0022 .dbline 21
0022 ; return 1;
0022 01E0 ldi R16,1
0024 01C0 rjmp L3
0026 L4:
0026 .dbline 23
0026 ; }
0026 ; return 0;
0026 0027 clr R16
0028 .dbline -2
0028 L3:
0028 .dbline 0 ; func end
0028 0895 ret
002A .dbend
002A .dbfunc e wait_ms _wait_ms fV
002A ; n -> R20,R21
.even
002A _wait_ms::
002A 00D0 rcall push_gset1
002C A801 movw R20,R16
002E .dbline -1
002E .dbline 26
002E ; }
002E ;
002E ; void wait_ms(unsigned int n) {
002E 05C0 rjmp L8
0030 L7:
0030 .dbline 27
0030 ; while(n) {
0030 .dbline 28
0030 ; if(get_t1_tick()) n--;
0030 F1DF rcall _get_t1_tick
0032 0023 tst R16
0034 11F0 breq L10
0036 .dbline 28
0036 4150 subi R20,1
0038 5040 sbci R21,0
003A L10:
003A .dbline 29
003A L8:
003A .dbline 27
003A 4030 cpi R20,0
003C 4507 cpc R20,R21
003E C1F7 brne L7
0040 X0:
0040 .dbline -2
0040 L6:
0040 00D0 rcall pop_gset1
0042 .dbline 0 ; func end
0042 0895 ret
0044 .dbsym r n 20 i
0044 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\ICCAVR\icc\stk500\avrasp\tools.c
0000 _t1_tick:
0000 .blkb 1
0001 .dbsym s t1_tick _t1_tick c
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?