📄 舵机控制.lst
字号:
__text_start:
__start:
001C EFCF LDI R28,0xFF
001D E0D2 LDI R29,2
001E BFCD OUT 0x3D,R28
001F BFDE OUT 0x3E,R29
0020 52C0 SUBI R28,0x20
0021 40D0 SBCI R29,0
0022 EA0A LDI R16,0xAA
0023 8308 STD Y+0,R16
0024 2400 CLR R0
0025 E0E4 LDI R30,4
0026 E0F1 LDI R31,1
0027 E011 LDI R17,1
0028 30E4 CPI R30,4
0029 07F1 CPC R31,R17
002A F011 BEQ 0x002D
002B 9201 ST R0,Z+
002C CFFB RJMP 0x0028
002D 8300 STD Z+0,R16
002E E3E4 LDI R30,0x34
002F E0F0 LDI R31,0
0030 E0A0 LDI R26,0
0031 E0B1 LDI R27,1
0032 E010 LDI R17,0
0033 33E8 CPI R30,0x38
0034 07F1 CPC R31,R17
0035 F021 BEQ 0x003A
0036 95C8 LPM
0037 9631 ADIW R30,1
0038 920D ST R0,X+
0039 CFF9 RJMP 0x0033
003A D070 RCALL _main
_exit:
003B CFFF RJMP _exit
FILE: D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例11_渐明渐暗的灯\舵机控制\HD_Support.c
(0001) /***********************************************************
(0002) * 函数库说明:底层硬件初始化函数库 *
(0003) * 版本: *
(0004) * 作者: *
(0005) * 创建日期: *
(0006) * -------------------------------------------------------- *
(0007) * [硬件说明] *
(0008) * 处理器: *
(0009) * 系统时钟: *
(0010) * -------------------------------------------------------- *
(0011) * [支 持 库] *
(0012) * 支持库名称:HD_Support.h *
(0013) * 需要版本: ----- *
(0014) * 支持库说明:底层硬件初始化声明库 *
(0015) * *
(0016) * 支持库名称:PF_Config.h *
(0017) * 需要版本: ----- *
(0018) * 支持库说明:硬件平台配置声明库 *
(0019) * -------------------------------------------------------- *
(0020) * [版本更新] *
(0021) * 修改: *
(0022) * 修改日期: *
(0023) * 版本: *
(0024) * -------------------------------------------------------- *
(0025) * [版本历史] *
(0026) * -------------------------------------------------------- *
(0027) * [使用说明] *
(0028) ***********************************************************/
(0029)
(0030) /********************
(0031) * 头 文 件 配 置 区 *
(0032) ********************/
(0033) # include "PF_Config.h"
(0034) # include "HD_Support.h"
(0035)
(0036) /********************
(0037) * 系 统 宏 定 义 *
(0038) ********************/
(0039) #pragma interrupt_handler Timer0_OVF_ISR:iv_TIMER0_OVF
(0040)
(0041) /*------------------*
(0042) * 常 数 宏 定 义 *
(0043) *------------------*/
(0044)
(0045) /*------------------*
(0046) * 动 作 宏 定 义 *
(0047) *------------------*/
(0048) #ifndef INSERT_TIMER0_OVF_ISR_CODE
(0049) # define INSERT_TIMER0_OVF_ISR_CODE
(0050) #endif
(0051)
(0052) /********************
(0053) * 模块结构体定义区 *
(0054) ********************/
(0055)
(0056) /********************
(0057) * 函 数 声 明 区 *
(0058) ********************/
(0059) void Device_INIT(void);
(0060)
(0061) /********************
(0062) * 模块函数声明区 *
(0063) ********************/
(0064) static void Port_INIT(void);
(0065) static void Timer0_INIT(void);
(0066) static void Timer1_INIT(void);
(0067)
(0068) /********************
(0069) * 模块变量声明区 *
(0070) ********************/
(0071)
(0072) /********************
(0073) * 全局变量声明区 *
(0074) ********************/
(0075)
(0076) /***********************************************************
(0077) * 函数说明:系统硬件初始化函数 *
(0078) * 输入: 无 *
(0079) * 输出: 无 *
(0080) * 调用函数:Port_INIT() Timer0_INIT() *
(0081) ***********************************************************/
(0082) void Device_INIT(void)
(0083) {
(0084) Port_INIT();
_Device_INIT:
003C D006 RCALL _Port_INIT
(0085) Timer0_INIT();
003D D012 RCALL _Timer0_INIT
(0086) Timer1_INIT();
003E D020 RCALL _Timer1_INIT
(0087) //*在这里添加其他初始化函数*//
(0088)
(0089) TIMSK0 = BIT(TOIE0); //启动定时器0溢出中断资源
003F E081 LDI R24,1
0040 9380006E STS 0x6E,R24
0042 9508 RET
(0090) //*在这里添加其他全局寄存器的初始化代码*//
(0091) }
(0092)
(0093) /***********************************************************
(0094) * 函数说明:系统端口初始化函数 *
(0095) * 输入: 无 *
(0096) * 输出: 无 *
(0097) * 调用函数:无 *
(0098) ***********************************************************/
(0099) static void Port_INIT(void)
(0100) {
(0101) //硬件PWM输出引脚
(0102) DDR_PB1 = PDIR_OUT;_PB1 = HIGH; //OC1A输出PWM
_Port_INIT:
0043 B184 IN R24,0x04
0044 6082 ORI R24,2
0045 B984 OUT 0x04,R24
0046 B185 IN R24,0x05
0047 6082 ORI R24,2
0048 B985 OUT 0x05,R24
(0103)
(0104) //工作指示灯
(0105) DDR_PC5 = PDIR_OUT;_PC5 = LOW;
0049 B187 IN R24,0x07
004A 6280 ORI R24,0x20
004B B987 OUT 0x07,R24
004C B188 IN R24,0x08
004D 7D8F ANDI R24,0xDF
004E B988 OUT 0x08,R24
004F 9508 RET
(0106) }
(0107)
(0108) /***********************************************************
(0109) * 函数声明:定时器0初始化函数 *
(0110) * 输入: 无 *
(0111) * 输出: 无 *
(0112) * 调用函数:无 *
(0113) ***********************************************************/
(0114) static void Timer0_INIT(void)
(0115) {
(0116) TCCR0B = 0x00; //1kHz定时中断
_Timer0_INIT:
0050 2422 CLR R2
0051 BC25 OUT 0x25,R2
(0117) TCNT0 = 0x83;
0052 E883 LDI R24,0x83
0053 BD86 OUT 0x26,R24
(0118) TCCR0A = 0x00;
0054 BC24 OUT 0x24,R2
(0119) TCCR0B = 0x02;
0055 E082 LDI R24,2
0056 BD85 OUT 0x25,R24
0057 9508 RET
_Timer0_OVF_ISR:
0058 D0AB RCALL push_lset
(0120) }
(0121)
(0122) /***********************************************************
(0123) * 函数声明:定时器0溢出中断处理程序 *
(0124) * 输入: 无 *
(0125) * 输出: 无 *
(0126) * 调用函数:INSERT_TIMER0_OVF_ISR_CODE *
(0127) ***********************************************************/
(0128) void Timer0_OVF_ISR(void)
(0129) {
(0130) TCNT0 = 0x83;
0059 E883 LDI R24,0x83
005A BD86 OUT 0x26,R24
(0131) INSERT_TIMER0_OVF_ISR_CODE
005B 9478 BSET 7
005C D027 RCALL _Insert_Timer0_OVF_ISR_Code
005D D0BD RCALL pop_lset
005E 9518 RETI
(0132) }
(0133)
(0134) /***********************************************************
(0135) * 函数声明:定时器1初始化函数 *
(0136) * 输入: 无 *
(0137) * 输出: 无 *
(0138) * 调用函数:无 *
(0139) ***********************************************************/
(0140) static void Timer1_INIT(void)
(0141) {
(0142) //*在这里粘贴从代码生成向导中生成的初始化代码*//
(0143) TCCR1B = 0x00; //停止定时器
_Timer1_INIT:
005F 2422 CLR R2
0060 92200081 STS 0x81,R2
(0144)
(0145) ICR1H = 0x27; //设定PWM波周期为20mS
0062 E287 LDI R24,0x27
0063 93800087 STS 0x87,R24
(0146) ICR1L = 0x10;
0065 E180 LDI R24,0x10
0066 93800086 STS 0x86,R24
(0147)
(0148) TCCR1A = 0x80; //OC1A引脚在向上计数匹配时置低,在向下计数匹配时置高
0068 E880 LDI R24,0x80
0069 93800080 STS 0x80,R24
(0149) TCCR1C = 0x00; //不使用强制匹配
006B 92200082 STS 0x82,R2
(0150) TCCR1B = 0x11; //启动定时器1,时钟不分频
006D E181 LDI R24,0x11
006E 93800081 STS 0x81,R24
0070 9508 RET
FILE: D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例11_渐明渐暗的灯\舵机控制\EX_Support.c
(0001) /***********************************************************
(0002) * 函数库说明:底层硬件初始化驱动函数库 *
(0003) * 版本: *
(0004) * 作者: *
(0005) * 创建日期: *
(0006) * -------------------------------------------------------- *
(0007) * [硬件说明] *
(0008) * 处理器: *
(0009) * 系统时钟: *
(0010) * -------------------------------------------------------- *
(0011) * [支 持 库] *
(0012) * 支持库名称:HD_Support.h *
(0013) * 需要版本: ----- *
(0014) * 支持库说明:底层硬件初始化声明库 *
(0015) * *
(0016) * 支持库名称:EX_Support.h *
(0017) * 需要版本: ----- *
(0018) * 支持库说明:底层硬件初始化驱动声明库 *
(0019) * *
(0020) * 支持库名称:PF_Config.h *
(0021) * 需要版本: ----- *
(0022) * 支持库说明:硬件平台配置声明库 *
(0023) * -------------------------------------------------------- *
(0024) * [版本更新] *
(0025) * 修改: *
(0026) * 修改日期: *
(0027) * 版本: *
(0028) * -------------------------------------------------------- *
(0029) * [版本历史] *
(0030) * -------------------------------------------------------- *
(0031) * [使用说明] *
(0032) ***********************************************************/
(0033)
(0034) /********************
(0035) * 头 文 件 配 置 区 *
(0036) ********************/
(0037) # include "PF_Config.h"
(0038) # include "EX_Support.h"
(0039)
(0040)
(0041) /********************
(0042) * 系 统 宏 定 义 *
(0043) ********************/
(0044)
(0045) /*------------------*
(0046) * 常 数 宏 定 义 *
(0047) *------------------*/
(0048)
(0049) /*------------------*
(0050) * 动 作 宏 定 义 *
(0051) *------------------*/
(0052)
(0053) /********************
(0054) * 模块结构体定义区 *
(0055) ********************/
(0056)
(0057) /********************
(0058) * 函 数 声 明 区 *
(0059) ********************/
(0060) void System_INIT(void);
(0061) void Delay_MS(uint16 wTime);
(0062) void Insert_Timer0_OVF_ISR_Code(void);
(0063)
(0064) /********************
(0065) * 模块函数声明区 *
(0066) ********************/
(0067) static void Driver_INIT(void);
(0068)
(0069) /********************
(0070) * 模块变量声明区 *
(0071) ********************/
(0072) static uint16 s_wSystemDelayTimerCounter = 0;
(0073)
(0074) /********************
(0075) * 全局变量声明区 *
(0076) ********************/
(0077) uint16 g_wSystemTimer = 0;
(0078)
(0079) /***********************************************************
(0080) * 函数说明:软件驱动初始化函数 *
(0081) * 输入: 无 *
(0082) * 输出: 无 *
(0083) * 调用函数:无 *
(0084) ***********************************************************/
(0085) static void Driver_INIT(void)
(0086) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -