完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
利用MSP430F149输出脉冲信号驱动电机,但是电机一直转,怎么输出一定数量的脉冲来控制电机旋转一定的角度。
下面程序有什么错误,感觉是无限输出,电机一直在转 #include typedef unsigned int uint; typedef unsigned char uchar; uchar i; void int_clk() { BCSCTL1 &= ~XT2OFF; //启动XT2振荡器 BCSCTL2 |= SELM1 + SELS; //MCLK为1MHz,SMCLK为8MHz do { IFG1 &= ~OFIFG;//清除振荡错误标志 for(i = 0;i < 100;i++); _NOP(); } while((IFG1 & OFIFG)!=0);//如果标志为1,则继续循环等待 IFG1 &= ~OFIFG; } void int_pwm() { TACTL = TASSEL0 + TACLR; CCTL0 = CCIE; CCR0 = 30; P1DIR |= BIT2; TACTL |= MC0; } void main() { P1DIR = 0XFF;P1OUT = 0XFF; P2DIR = 0XFF;P2OUT = 0XFF; P3DIR = 0XFF;P3OUT = 0XFF; P4DIR = 0XFF;P4OUT = 0XFF; P5DIR = 0XFF;P5OUT = 0XFF; P6DIR = 0XFF;P6OUT = 0XFF; // P6DIR |= BIT2;P6OUT &= ~BIT2; //打开电平转换 //P2DIR |= BIT3;P2OUT &= ~BIT3; //电平转换方向3.3V--->5V uchar i; WDTCTL = WDTPW + WDTHOLD;//;关闭看门狗 _EINT(); P1DIR |= BIT2 + BIT3; P1OUT |= BIT3;//使能端置高电平 int_clk(); int_pwm(); } #pragma vector = tiMERA0_VECTOR __interrupt void Time_A(void) { P1OUT ^= BIT2; } |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
384 浏览 0 评论
398 浏览 0 评论
405 浏览 0 评论
780 浏览 0 评论
RT-Thread与英飞凌(infineon)合作得板子PSOC 6 板子学习
741 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
17010 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-12 00:30 , Processed in 0.542881 second(s), Total 74, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4605