|
闲来没事弄得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);
-
- }
-
- }
- /* */
- }
- }
复制代码
|
|