我就把例程里的按键和pwm融合在一起,但是怎么弄都没办法实现:
1.在按键里放pwm的代码
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "timer.h"
int main(void)
{
u16 led0pwmval=0;
vu8 key=0;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
TIM3_PWM_Init(899,0); //不分频。PWM频率=72000000/900=80Khz
delay_init(); //延时函数初始化
LED_Init(); //LED端口初始化
KEY_Init(); //初始化与按键连接的硬件接口
LED1=0; //先点亮红灯
while(1)
{
key=KEY_Scan(0); //得到键值
if(key)
{
switch(key)
{
case WKUP_PRES:
led0pwmval+=10;
break;
case KEY2_PRES:
if(led0pwmval<100)
led0pwmval=0;
else
led0pwmval-=100;
break;
case KEY1_PRES:
if(led0pwmval<10)
led0pwmval=0;
else
led0pwmval-=10;
break;
case KEY0_PRES:
led0pwmval+=100;
break;
}
}
else delay_ms(10);
if(led0pwmval>300)
led0pwmval=300;
TIM_SetCompare2(TIM3,led0pwmval);
}
}
根本按了没反应。
在pwm代码里加按键的代码也是一样,只有灯自己变暗变亮,按键没用,为什么啊?io口又没有冲突
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>