⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rd_useled_flash_ctr.lis

📁 移动机器人(小车)的物理坐标和逻辑坐标的转换源码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .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 + -