📄 rd_useled_flash_ctr.lis
字号:
.module RD_UseLED_Flash_CTR.c
.area text(rom, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块应用版\Relative_Locate_Module\RD_UseLED_Flash_CTR.c
0000 .dbfunc e LED_Flash_Control_INIT _LED_Flash_Control_INIT fV
0000 ; n1 -> R20
.even
0000 _LED_Flash_Control_INIT::
0000 4A93 st -y,R20
0002 .dbline -1
0002 .dbline 97
0002 ; /***********************************************************
0002 ; * 函数库说明:LED闪烁控制函数库 *
0002 ; * 版本: v1.00 *
0002 ; * 作者: 王卓然 *
0002 ; * 创建日期: 2007年4月4日 *
0002 ; * -------------------------------------------------------- *
0002 ; * [支 持 库] *
0002 ; * 支持库名称:LIB_Config.h *
0002 ; * 需要版本: ----- *
0002 ; * 支持库说明:库函数配置声明库 *
0002 ; * *
0002 ; * 支持库名称:RD_MacroAndConst.h *
0002 ; * 需要版本: v0.01 &abv *
0002 ; * 支持库说明:系统常用宏定义库 *
0002 ; * *
0002 ; * 支持库名称:RD_UseLED_Flash_CTR.h *
0002 ; * 需要版本: ----- *
0002 ; * 支持库说明:LED闪烁控制函数声明库 *
0002 ; * -------------------------------------------------------- *
0002 ; * [版本更新] *
0002 ; * 修改: *
0002 ; * -------------------------------------------------------- *
0002 ; * [版本历史] *
0002 ; * -------------------------------------------------------- *
0002 ; * [使用说明] *
0002 ; ***********************************************************/
0002 ;
0002 ; /********************
0002 ; * 头 文 件 配 置 区 *
0002 ; ********************/
0002 ; # include "LIB_Config.h"
0002 ; # include "RD_MacroAndConst.h"
0002 ; # include "RD_UseLED_Flash_CTR.h"
0002 ;
0002 ; /********************
0002 ; * 系 统 宏 定 义 *
0002 ; ********************/
0002 ;
0002 ; /*------------------*
0002 ; * 常 数 宏 定 义 *
0002 ; *------------------*/
0002 ;
0002 ; #ifndef LED_FCTR_LED_COUNT
0002 ; # error Need for the number of the LEDs: LED_FCTR_LED_COUNT
0002 ; #endif
0002 ; #ifndef LED_PORT_START
0002 ; # error Need for the start pin number of LEDs: LED_PORT_START
0002 ; #endif
0002 ; #ifndef LED_PORT
0002 ; # error Need for the port name of the LEDs: LED_PORT
0002 ; #endif
0002 ;
0002 ; /*------------------*
0002 ; * 动 作 宏 定 义 *
0002 ; *------------------*/
0002 ; #ifndef SYS_TIMER_MS_ADD_UNTILL_OVF
0002 ; #error Need for SYS_TIMER_MS_ADD_UNTILL_OVF !
0002 ; #else
0002 ; extern uint16 SYS_TIMER_MS_ADD_UNTILL_OVF;
0002 ; #endif
0002 ;
0002 ; /********************
0002 ; * 用户变量类型定义 *
0002 ; ********************/
0002 ;
0002 ; /********************
0002 ; * 结构体定义区 *
0002 ; ********************/
0002 ;
0002 ; /********************
0002 ; * 模块函数声明区 *
0002 ; ********************/
0002 ;
0002 ; /********************
0002 ; * 全局函数声明区 *
0002 ; ********************/
0002 ; void LED_Flash_Control_INIT(void);
0002 ; BOOL LED_Flash_Control_Refresh(void);
0002 ;
0002 ; /********************
0002 ; * 模块变量声明区 *
0002 ; ********************/
0002 ;
0002 ; /********************
0002 ; * 全局变量声明区 *
0002 ; ********************/
0002 ; uint8 g_cLEDs[LED_FCTR_LED_COUNT];
0002 ;
0002 ;
0002 ; /***********************************************************
0002 ; * 函数说明:LED闪烁控制初始化函数 *
0002 ; * 输入: 无 *
0002 ; * 输出: 无 *
0002 ; * 调用函数:无 *
0002 ; ***********************************************************/
0002 ; void LED_Flash_Control_INIT(void)
0002 ; {
0002 .dbline 98
0002 ; uint8 n = 0;
0002 .dbline 100
0002 ;
0002 ; for (n = 0;n < UBOUND(g_cLEDs);n++)
0002 4427 clr R20
0004 10C0 rjmp L5
0006 L2:
0006 .dbline 101
0006 ; {
0006 .dbline 102
0006 ; g_cLEDs[n] = LED_OFF;
0006 80E0 ldi R24,<_g_cLEDs
0008 90E0 ldi R25,>_g_cLEDs
000A E42F mov R30,R20
000C FF27 clr R31
000E E80F add R30,R24
0010 F91F adc R31,R25
0012 2224 clr R2
0014 2082 std z+0,R2
0016 .dbline 104
0016 ;
0016 ; LED_PORT |= BIT(LED_PORT_START+n);
0016 142F mov R17,R20
0018 1E5F subi R17,254 ; addi 2
001A 01E0 ldi R16,1
001C 00D0 rcall lsl8
001E 28B0 in R2,0x8
0020 202A or R2,R16
0022 28B8 out 0x8,R2
0024 .dbline 105
0024 ; }
0024 L3:
0024 .dbline 100
0024 4395 inc R20
0026 L5:
0026 .dbline 100
0026 4230 cpi R20,2
0028 70F3 brlo L2
002A X0:
002A .dbline -2
002A L1:
002A .dbline 0 ; func end
002A 4991 ld R20,y+
002C 0895 ret
002E .dbsym r n1 20 c
002E .dbend
.area data(ram, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块应用版\Relative_Locate_Module\RD_UseLED_Flash_CTR.c
0000 L7:
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块应用版\Relative_Locate_Module\RD_UseLED_Flash_CTR.c
.area text(rom, con, rel)
002E .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块应用版\Relative_Locate_Module\RD_UseLED_Flash_CTR.c
002E .dbfunc e LED_Flash_Control_Refresh _LED_Flash_Control_Refresh fc
002E .dbsym s n L7 c
.even
002E _LED_Flash_Control_Refresh::
002E 4A93 st -y,R20
0030 .dbline -1
0030 .dbline 115
0030 ; }
0030 ;
0030 ; /***********************************************************
0030 ; * 函数说明:LED闪烁刷新函数 *
0030 ; * 输入: 无 *
0030 ; * 输出: 是否继续执行 *
0030 ; * 调用函数:无 *
0030 ; ***********************************************************/
0030 ; BOOL LED_Flash_Control_Refresh(void)
0030 ; {
0030 .dbline 118
0030 ; static uint8 n = 0;
0030 ;
0030 ; switch(g_cLEDs[n])
0030 80E0 ldi R24,<_g_cLEDs
0032 90E0 ldi R25,>_g_cLEDs
0034 E0910000 lds R30,L7
0038 FF27 clr R31
003A E80F add R30,R24
003C F91F adc R31,R25
003E 4081 ldd R20,z+0
0040 4423 tst R20
0042 09F4 brne X14
0044 B3C0 rjmp L27
0046 X14:
0046 X1:
0046 4130 cpi R20,1
0048 79F0 breq L11
004A X2:
004A 4230 cpi R20,2
004C C1F0 breq L12
004E X3:
004E 4330 cpi R20,3
0050 09F4 brne X15
0052 33C0 rjmp L15
0054 X15:
0054 X4:
0054 4430 cpi R20,4
0056 09F4 brne X16
0058 4EC0 rjmp L18
005A X16:
005A X5:
005A 4530 cpi R20,5
005C 09F4 brne X17
005E 69C0 rjmp L21
0060 X17:
0060 X6:
0060 4630 cpi R20,6
0062 09F4 brne X18
0064 84C0 rjmp L24
0066 X18:
0066 X7:
0066 A2C0 rjmp L8
0068 L11:
0068 .dbline 124
0068 ; {
0068 ; case LED_ON:
0068 ; #ifdef _LED_FLASH_CTR_ANODE
0068 ; LED_PORT |= BIT(LED_PORT_START+n);
0068 ; #else
0068 ; LED_PORT &= ~BIT(LED_PORT_START+n);
0068 10910000 lds R17,L7
006C 1E5F subi R17,254 ; addi 2
006E 01E0 ldi R16,1
0070 00D0 rcall lsl8
0072 202E mov R2,R16
0074 2094 com R2
0076 38B0 in R3,0x8
0078 3220 and R3,R2
007A 38B8 out 0x8,R3
007C .dbline 126
007C ; #endif
007C ; break;
007C 9FC0 rjmp L9
007E L12:
007E .dbline 128
007E ; case LED_FLASH_VERY_SLOW:
007E ; if ((SYS_TIMER_MS_ADD_UNTILL_OVF & 0x07ff) > 0x03ff)
007E 8FEF ldi R24,1023
0080 93E0 ldi R25,3
0082 E0910000 lds R30,_g_wSystemTimer
0086 F0910100 lds R31,_g_wSystemTimer+1
008A F770 andi R31,7
008C 8E17 cp R24,R30
008E 9F07 cpc R25,R31
0090 48F4 brsh L13
0092 X8:
0092 .dbline 129
0092 ; {
0092 .dbline 130
0092 ; LED_PORT |= BIT(LED_PORT_START+n);
0092 10910000 lds R17,L7
0096 1E5F subi R17,254 ; addi 2
0098 01E0 ldi R16,1
009A 00D0 rcall lsl8
009C 28B0 in R2,0x8
009E 202A or R2,R16
00A0 28B8 out 0x8,R2
00A2 .dbline 131
00A2 ; }
00A2 8CC0 rjmp L9
00A4 L13:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -