新手上路
- 积分
- 33
- 金钱
- 33
- 注册时间
- 2017-6-27
- 在线时间
- 6 小时
|

楼主 |
发表于 2019-8-7 08:38:35
|
显示全部楼层
本帖最后由 WTC960522 于 2019-8-12 09:25 编辑
已经做出来了,虽然不是太完美,改变了计算的方法
#include "sys.h"
#include "o.h"
#include "t.h"
#include "delay.h"
#include "k.h"
#include "sys.h"
int main(void)
{
float pa6pwmval=144;
u32 b=250000;
u16 z=50;
u8 key;
float a=288;
delay_init(); //ÑÓʱº¯Êý³õʼ»¯
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //ÉèÖÃNVICÖжϷÖ×é2:2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶
KEY_Init(); //KEY³õʼ»¯
OUT_init();
TIM4_PWM_Init(a-1,0); //TIM4 PWM³õʼ»¯, Fpwm=72M/256=281.25Khz.
TIM_SetCompare4(TIM4,pa6pwmval);//³õʼֵΪ0
while(1)
{
key=KEY_Scan(1);
if(key==KEY1_PRES)
{ if(z<100)z+=1;
pa6pwmval=a*z/100;
TIM_SetCompare4(TIM4,pa6pwmval);
}else if(key==KEY2_PRES)
{
if(z>0)z-=1;
pa6pwmval=a*z/100;
TIM_SetCompare4(TIM4,pa6pwmval);
}else if(key==KEY3_PRES)
{
if(b<300000)b+=1000;
a=72000000/b;
pa6pwmval=a*z/100;
TIM4_PWM_Init(a-1,0);
TIM_SetCompare4(TIM4,pa6pwmval);
} else if(key==KEY4_PRES)
{
if(b>200000)b-=1000;
a=72000000/b;
pa6pwmval=a*z/100;
TIM4_PWM_Init(a-1,0);
TIM_SetCompare4(TIM4,pa6pwmval);
} else if(key==KEY5_PRES)
{
}
delay_ms(50);
}
}
|
|