` 本帖最后由 kevinrliu 于 2015-10-29 13:34 编辑
该实验使用到LED,手环有三个可控LED,分别接在MCU的P22、P20、P29这三个引脚,每个LED串联1K的限流电阻,如下图所示:
开发板系列教程:http://pan.baidu.com/s/1bnBJsMr
手环DIY开源学习教程:http://pan.baidu.com/s/1eQlUGiI 阅读软件:http://pan.baidu.com/s/1o6ELGCE 淘宝小店:shop115904315.taobao.com
2.1 Timer介绍 软件定时器模块包含两个定时器模块,它们可以通过软件控制、编程并用于各种任务。 2.1.1 Timer0 定时器0有16位的通用定时器;可以产生两路脉宽调制信号;可编程的输出频率;可编程的占空比;可编程的软件中断。 2.1.2 Timer2 定时器2有14位的通用定时器;可以产生3路脉宽调制信号;输入时钟频率为16MHz;可编程的输入频率;占空比可调;用于白色LED的亮度控制。 2.2 寄存器介绍
2.2.1 定时器0控制寄存器15:4位:保留不使用; 3位:PWM模式选择,’0’表示PWM信号为高时输出’1’,’1’表示PWM信号为高时输出快时钟信号的二分频,则输出频率范围为1~8MHz; 2位:定时器0的时钟分频,为’1’使用选择的时钟源频率,为’0’使用选择的时钟源进行10分频,注意这个值适用于计数寄存器; 1位:时钟源选择,’1’使用快时钟(16、8、4、2MHz),’0’使用慢时钟(32KHz); 0位:定时器0控制位,’0’表示定时器0关闭并处于复位状态,’1’定时器0运行。 2.2.2 定时器0计数控制寄存器 定时器0计数重新装载值,如果读取该寄存器则返回当前计数器的值。 2.2.3 定时器0高电平重新装载值 定时器0高电平重新装载值,如果读取该寄存器则返回定时器0的计数值。 2.2.4 定时器0低电平重新装载值 定时器0低电平重新装载值,如果读取该寄存器则返回定时器0的计数值。 2.2.5 PWM2占空比 PWM2信号的占空比。 2.2.6 PWM3占空比 PWM3信号的占空比。 2.2.7 PWM4占空比 PWM4信号的占空比。 2.2.8 PWM2,3,4的频率 PWM2、3、4信号的频率,三个信号频率相同。 2.2.9 PWM2,3,4控制寄存器2位:硬件暂停使能,为’1’则硬件可以停止PWM2、3、4。 1位:软件暂停使能,为’1’则PWM2、3、4暂停。 0位:PWM信号使能,为’1’则PWM2、3、4使能。 2.3 寄存器配置讲解 #define CLK_PER_REG (* ( volatile uint16*)0x50000004) #define TIMER0_CTRL_REG (* ( volatile uint16*)0x50003400) #define TIMER0_ON_REG (* ( volatile uint16*)0x50003402) #define TIMER0_RELOAD_M_REG (* ( volatile uint16*)0x50003404) #define TIMER0_RELOAD_N_REG (* ( volatile uint16*)0x50003406) #define PWM2_DUTY_CYCLE (* ( volatile uint16*)0x50003408) #define PWM3_DUTY_CYCLE (* ( volatile uint16*)0x5000340A) #define PWM4_DUTY_CYCLE (* ( volatile uint16*)0x5000340C) #define TRIPLE_PWM_FREQUENCY (* ( volatile uint16*)0x5000340E) #define TRIPLE_PWM_CTRL_REG (* ( volatile uint16*)0x50003410) 启动Timer0模块的时钟:CLK_PER_REG |= 0x0008; 定时器0初始化,选择高频时钟,正常PWM模式,无分频,则TIMER0_CTRL_REG = 0X0E; 设置计数值为1000,高电平为500,低电平为200,则TIMER0_ON_REG=1000; TIMER0_RELOAD_M_REG=500;TIMER0_RELOAD_N_REG=200; 开定时器中断NVIC_SetPriority (SWTIM_IRQn, 254);NVIC_EnableIRQ(SWTIM_IRQn); 启动定时器TIMER0_CTRL_REG = (TIMER0_CTRL_REG|0x01);
第三节 Timer实验
实验需要使用的模块有:手环,Jlink调试工具,一根手环下载调试线。 将JLINK通过下载调试线连接到手环的USB调试接口,JLINK插在有拨码开关的一端,注意丝印标注一一对应,将JLINK插上电脑的USB口,如下图所示: 打开Timer实验的Keil工程Simple_Timer.uvproj,位于目录:.. 4_实战教程1_裸机篇2_定时器实验定时器实验。如下图所示: 使用手环调试下载线连接好Jlink,编译,点击DEBUG,然后点击全速运行,则可以看到LED3闪烁,如下图所示:
开发板系列教程:http://pan.baidu.com/s/1bnBJsMr
手环DIY开源学习教程:http://pan.baidu.com/s/1eQlUGiI 阅读软件:http://pan.baidu.com/s/1o6ELGCE 淘宝小店:shop115904315.taobao.com
`
|