K60的电机测试程序
单片机源程序如下:
- #include "include.h"
- void init(){
- SIM->SCGC5 |= SIM_SCGC5_PORTA_MASK|SIM_SCGC5_PORTC_MASK|SIM_SCGC5_PORTD_MASK|SIM_SCGC5_PORTE_MASK;
- PORTA->PCR[17] &=~PORT_PCR_MUX_MASK;
- PORTC->PCR[0] &=~PORT_PCR_MUX_MASK;
- PORTD->PCR[15] &=~PORT_PCR_MUX_MASK;
- PORTE->PCR[26] &=~PORT_PCR_MUX_MASK;
- PORTA->PCR[17] |=PORT_PCR_MUX(1);
- PORTC->PCR[0] |=PORT_PCR_MUX(1);
- PORTD->PCR[15] |=PORT_PCR_MUX(1);
- PORTE->PCR[26] |=PORT_PCR_MUX(1);
- PTA->PDDR |= (1<<17);
- PTA->PDOR |= (1<<17);
- PTC->PDDR |= (1<<0);
- PTC->PDOR |= (1<<0);
- PTD->PDDR |= (1<<15);
- PTD->PDOR |= (1<<15);
- PTE->PDDR |= (1<<26);
- PTE->PDOR |= (1<<26);
- }
- void initCar(){
- FTM_PWM_QuickInit(FTM0_CH0_PC01,kPWM_EdgeAligned,1000);
- FTM_PWM_QuickInit(FTM0_CH1_PC02,kPWM_EdgeAligned,1000);
- FTM_PWM_QuickInit(FTM0_CH2_PC03,kPWM_EdgeAligned,1000);
- FTM_PWM_QuickInit(FTM0_CH3_PC04,kPWM_EdgeAligned,1000);
- }
- void test1(void)
- {
- FTM_PWM_ChangeDuty(HW_FTM0,HW_FTM_CH1,8000);
- FTM_PWM_ChangeDuty(HW_FTM0,HW_FTM_CH3,0);
- FTM_PWM_ChangeDuty(HW_FTM0,HW_FTM_CH2,8000);
- FTM_PWM_ChangeDuty(HW_FTM0,HW_FTM_CH0,0);
- }
- void test2(void)
- {
- FTM_PWM_ChangeDuty(HW_FTM0,HW_FTM_CH1,0);
- FTM_PWM_ChangeDuty(HW_FTM0,HW_FTM_CH3,8000);
- FTM_PWM_ChangeDuty(HW_FTM0,HW_FTM_CH2,0);
- FTM_PWM_ChangeDuty(HW_FTM0,HW_FTM_CH0,8000);
- }
- void main(){
- init();
- initCar();
- while(1){
- for(int i=0;i<1000;i++){
- for(int j=0;j<10000;j++){
- }
- }
- test1();
- PTA->PDOR |= (1<<17);
- PTC->PDOR |= (1<<0);
- PTD->PDOR |= (1<<15);
- PTE->PDOR |= (1<<26);
- for(int i=0;i<1000;i++){
- for(int j=0;j<10000;j++){
- }
- }
- test2();
- PTA->PDOR &=~ (1<<17);
- PTC->PDOR &=~ (1<<0);
- PTD->PDOR &=~ (1<<15);
- PTE->PDOR &=~ (1<<26);
- }
- }
复制代码
所有资料51hei提供下载:
newProject - 副本.rar
(1 MB, 下载次数: 8)
|