|
閑來沒事弄得mos驅動板,隨便看看
單電機檢測代碼:輸出PWM控制電機
連接的信號引腳: PWM1 PWM2 PWM3
PTC1 PTC2 PTC3
PWM3為電機驅動使能腳,高電平有效
注意:
本程序使用的是IAR6.5版本打開,使用低版本打開可能會出錯。
- /******************** (C) COPYRIGHT 2011 藍宙電子工作室 ********************
- * 文件名 :main.c
- * 描述 :工程模版實驗
- *
- * 實驗平臺 :landzo電子開發版
- * 庫版本 :
- * 嵌入系統 :
- *
- * 作者 :landzo 藍宙電子工作室
- **********************************************************************************/
- #include "include.h"
- extern u8 LPT_INT_count ;
- extern u8 DMA_Over_Flg ; //采集完成標志位
- extern u8 LinADCout ;
- u8 TIME0flag_5ms ;
- u8 TIME0flag_10ms ;
- u8 TIME0flag_15ms ;
- u8 TIME0flag_20ms ;
- u8 TIME1flag_1s ;
-
- /********
- 調速變量
- ********/
- u16 count = 0 ;
- int16_t PWMCount = 0 ;
- void main()
- {
- DisableInterrupts; //禁止總中斷
-
-
- /*********************************************************
- 初始化程序
- *********************************************************/
- //自行添加代碼
-
- uart_init (UART0 , 115200); //初始化UART0,輸出腳PTA15,輸入腳PTA14,串口頻率 9600
- /*************************************
- 初始化電機
- *************************************/
- /* */
- gpio_init (PORTA , 16, GPO,HIGH); ///LED閃爍
- gpio_init (PORTC , 3, GPO,HIGH); //電機使能
- FTM_PWM_init(FTM0 , CH0, 80000,0);
- FTM_PWM_init(FTM0 , CH1, 80000,0); //電機占空比設置初始化 占空比 = duty /(MOD +1 ) ;FTM_CnV_REG(FTMx[ftmn], ch) = cv;
-
- pit_init_ms(PIT0, 100); //初始化PIT0,定時時間為: 5ms
-
-
- EnableInterrupts; //開總中斷
-
- /******************************************
- 執行程序
- ******************************************/
- while(1)
- {
-
- if(TIME0flag_20ms == 1 )
- {
- TIME0flag_20ms = 0;
- PTA16_OUT=~PTA16_OUT;
-
- if( count == 3 )
- {
- count = 2 ;
- FTM_PWM_Duty(FTM0 , CH0,50);
- FTM_PWM_Duty(FTM0 , CH1,0);
- } else if(count == 2)
- {
-
- count = 1 ;
- FTM_PWM_Duty(FTM0 , CH0,0);
- FTM_PWM_Duty(FTM0 , CH1,0);
-
- }else if(count == 1)
- {
-
- count = 0 ;
- FTM_PWM_Duty(FTM0 , CH0,0);
- FTM_PWM_Duty(FTM0 , CH1,50);
-
- } else if(count == 0)
- {
-
- count = 3 ;
- FTM_PWM_Duty(FTM0 , CH0,0);
- FTM_PWM_Duty(FTM0 , CH1,0);
-
- }
-
- }
- /* */
- }
- }
復制代碼
|
|