📄 tools.lis
字号:
.module tools.c
.area text(rom, con, rel)
0000 .dbfile E:\单片机\源程序\Snail_mkII\STK500_V2\ICC\tools.c
.area eeprom(rom, con, rel)
0000 .dbfile E:\单片机\源程序\Snail_mkII\STK500_V2\ICC\tools.c
0000 _eeprom_sck_period::
0000 0A .byte 10
.area data(ram, con, rel)
0000 .dbfile E:\单片机\源程序\Snail_mkII\STK500_V2\ICC\tools.c
.area vector(rom, abs)
.org 28
001C 0C940000 jmp _Timer1_COMPA_ISR
.area data(ram, con, rel)
0000 .dbfile E:\单片机\源程序\Snail_mkII\STK500_V2\ICC\tools.c
.area text(rom, con, rel)
0000 .dbfile E:\单片机\源程序\Snail_mkII\STK500_V2\ICC\tools.c
0000 .dbfunc e Timer1_COMPA_ISR _Timer1_COMPA_ISR fV
.even
0000 _Timer1_COMPA_ISR::
0000 8A93 st -y,R24
0002 9A93 st -y,R25
0004 8FB7 in R24,0x3f
0006 8A93 st -y,R24
0008 .dbline -1
0008 .dbline 26
0008 ; /** \file
0008 ; <b>some tools</b><br>
0008 ; Autor: Matthias Wei遝r<br>
0008 ; Copyright 2005: Matthias Wei遝r<br>
0008 ; License: QPL (see license.txt)
0008 ; <hr>
0008 ; */
0008 ; #include <iccioavr.h>
0008 ; #include <eeprom.h>
0008 ;
0008 ; #include "tools.h"
0008 ;
0008 ; volatile unsigned char t1_tick;
0008 ; unsigned char t1_cnt;
0008 ;
0008 ; //Konstanten im EEPROM
0008 ; //#define EEPROM __attribute__ ((section (".eeprom")))
0008 ;
0008 ; //Variablen im EEPROM
0008 ; #pragma data:eeprom
0008 ; unsigned char eeprom_sck_period = 10;
0008 ; #pragma data:data
0008 ;
0008 ; #pragma interrupt_handler Timer1_COMPA_ISR:iv_TIMER1_COMPA
0008 ; void Timer1_COMPA_ISR(void)
0008 ; {
0008 .dbline 27
0008 ; t1_tick=1;
0008 81E0 ldi R24,1
000A 80930100 sts _t1_tick,R24
000E .dbline 28
000E ; t1_cnt++;
000E 80910000 lds R24,_t1_cnt
0012 8F5F subi R24,255 ; addi 1
0014 80930000 sts _t1_cnt,R24
0018 .dbline -2
0018 L2:
0018 .dbline 0 ; func end
0018 8991 ld R24,y+
001A 8FBF out 0x3f,R24
001C 9991 ld R25,y+
001E 8991 ld R24,y+
0020 1895 reti
0022 .dbend
0022 .dbfunc e get_t1_tick _get_t1_tick fc
.even
0022 _get_t1_tick::
0022 .dbline -1
0022 .dbline 32
0022 ; }
0022 ;
0022 ; unsigned char get_t1_tick(void)
0022 ; {
0022 .dbline 33
0022 ; if (t1_tick)
0022 20900100 lds R2,_t1_tick
0026 2220 tst R2
0028 29F0 breq L4
002A X0:
002A .dbline 34
002A ; {
002A .dbline 35
002A ; t1_tick=0;
002A 2224 clr R2
002C 20920100 sts _t1_tick,R2
0030 .dbline 36
0030 ; return 1;
0030 01E0 ldi R16,1
0032 01C0 xjmp L3
0034 L4:
0034 .dbline 38
0034 ; }
0034 ; return 0;
0034 0027 clr R16
0036 .dbline -2
0036 L3:
0036 .dbline 0 ; func end
0036 0895 ret
0038 .dbend
0038 .dbfunc e wait_ms _wait_ms fV
0038 ; n -> R20,R21
.even
0038 _wait_ms::
0038 4A93 st -y,R20
003A 5A93 st -y,R21
003C A801 movw R20,R16
003E .dbline -1
003E .dbline 45
003E ; }
003E ;
003E ; /**
003E ; Wartet n*1ms - 1ms max.
003E ; */
003E ; void wait_ms(unsigned int n)
003E ; {
003E 05C0 xjmp L8
0040 L7:
0040 .dbline 47
0040 ; while (n)
0040 ; {
0040 .dbline 48
0040 ; if (get_t1_tick()) n--;
0040 F0DF xcall _get_t1_tick
0042 0023 tst R16
0044 11F0 breq L10
0046 X1:
0046 .dbline 48
0046 4150 subi R20,1
0048 5040 sbci R21,0
004A L10:
004A .dbline 49
004A ; }
004A L8:
004A .dbline 46
004A 4030 cpi R20,0
004C 4507 cpc R20,R21
004E C1F7 brne L7
0050 X2:
0050 .dbline -2
0050 L6:
0050 .dbline 0 ; func end
0050 5991 ld R21,y+
0052 4991 ld R20,y+
0054 0895 ret
0056 .dbsym r n 20 i
0056 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\单片机\源程序\Snail_mkII\STK500_V2\ICC\tools.c
0000 _t1_cnt::
0000 .blkb 1
0001 .dbsym e t1_cnt _t1_cnt c
0001 _t1_tick::
0001 .blkb 1
0002 .dbsym e t1_tick _t1_tick c
0002 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -