资深版主
- 积分
- 4306
- 金钱
- 4306
- 注册时间
- 2018-6-30
- 在线时间
- 808 小时
|
本帖最后由 1208 于 2019-1-21 20:46 编辑
本实验通过按键的次数来达到PWM占空比不同等级亮度的输出
因为按键有个宏定义返回值
#define KEY0_PRES 1 //KEY0
#define KEY1_PRES 2 //KEY1
#define WKUP_PRES 3 //WK_UP
所以按键的值可以写成
mode=0,不支持连续按
KEY_Scan(0)==1
KEY_Scan(0)==2
PWM频率设置成72M/(100*7200)=100HZ
[mw_shl_code=c,true]int main(void)
{
int count=0;
KEY_Init();
delay_init(); //延时函数初始化
LED_Init(); //初始化与LED连接的硬件接口
TIM1_PWM_Init(100-1,7200-1);//不分频。PWM频率=72M/(100*7200)=100HZ
while(1)
{
// delay_ms(1);
if(KEY_Scan(0)==2) //KEY1按键控制灯变亮
{
count+=10;
if(count>100) count=0;
TIM_SetCompare1(TIM1,count);
}
// delay_ms(1);
if(KEY_Scan(0)==1) // KEY0按键控制灯变暗
{
count-=10;
if(count<0) count=100;
TIM_SetCompare1(TIM1,count);
}
}
}[/mw_shl_code]
关于按键前面加延时问题:按键前面加一个延时按键可以控制,不加延时就不可以控制按键亮灯。前面都不加延时就不影响
|
|