|
初学32,想自制一个四轴,代码独立编写,这个贴是记录pwm控制电调,以及电调的初始化协议,说来曲折,由于刚开始只知道信号50HZ方波,并不知道脉宽(网上查的是1ms最大油门但并不好使),于是刚好手头有个TM1637的数码管,这个数码管也是曲折,网上只有f1的代码,于是又进行移植,采用I2C通信协议,中间量便显示在数码管上,经过验证,2ms最低油门,3ms最高油门,是亿航的拆机电调,代码已上传,主函数如下KEY0加速 KEY1减速
int main(void)
{
u16 led0pwmval=16;
u8 key; //保存键值
u8 dir=1;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(168); //初始化延时函数
KEY_Init(); //初始化与按键连接的硬件接
TM1637_Init();
uart_init(115200);//初始化串口波特率为115200
TIM14_PWM_Init(168-1,10000-1);
while(1)
{
key=KEY_Scan(0); //得到键值
if(key)
{
switch(key)
{
case KEY0_PRES: //控制LED0翻转
led0pwmval++;
break;
case KEY1_PRES: //控制LED1翻转
led0pwmval--;
break;
}
}else delay_ms(10);
TIM_SetCompare1(TIM14,led0pwmval);
TM1637_NixieTubeDisplay();
TM1637_NixieTubeDisplayChar(0,0);
TM1637_NixieTubeDisplayChar(0,1);
TM1637_NixieTubeDisplayChar(led0pwmval/10,2);//第三位显示3
TM1637_NixieTubeDisplayChar(led0pwmval%10,3);//第四位显示4
}
}
|
评分
-
查看全部评分
|