|
初學(xué)32,想自制一個(gè)四軸,代碼獨(dú)立編寫,這個(gè)貼是記錄pwm控制電調(diào),以及電調(diào)的初始化協(xié)議,說來曲折,由于剛開始只知道信號(hào)50HZ方波,并不知道脈寬(網(wǎng)上查的是1ms最大油門但并不好使),于是剛好手頭有個(gè)TM1637的數(shù)碼管,這個(gè)數(shù)碼管也是曲折,網(wǎng)上只有f1的代碼,于是又進(jìn)行移植,采用I2C通信協(xié)議,中間量便顯示在數(shù)碼管上,經(jīng)過驗(yàn)證,2ms最低油門,3ms最高油門,是億航的拆機(jī)電調(diào),代碼已上傳,主函數(shù)如下KEY0加速 KEY1減速
int main(void)
{
u16 led0pwmval=16;
u8 key; //保存鍵值
u8 dir=1;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級(jí)分組2
delay_init(168); //初始化延時(shí)函數(shù)
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翻轉(zhuǎn)
led0pwmval++;
break;
case KEY1_PRES: //控制LED1翻轉(zhuǎn)
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
}
}
|
-
-
PWM輸出實(shí)驗(yàn).7z
2020-2-10 17:36 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
298.23 KB, 下載次數(shù): 25, 下載積分: 黑幣 -5
評(píng)分
-
查看全部評(píng)分
|