完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include "MSP430X16X.h" #define uint unsigned int #define uchar unsigned char #define Num_Of_Results 16 uint A0result[Num_Of_Results]; uint A1result[Num_Of_Results]; uint A2result[Num_Of_Results]; uint A3result[Num_Of_Results]; uchar key1=0; uint average; uint x,y,x0,x1,x2,x3; int long sum; int long IntDegC; static uchar index=0; /**********工作频率设置**********/ void InitClock(void) { uint i; BCSCTL1&=~XT2OFF; do { IFG1&=~OFIFG; for(i=0xff;i>0;i--); } while((IFG1&OFIFG)); BCSCTL2=0X00; BCSCTL2=SELS+SELM_3; } /**********舵机初始化**********/ void init_pwm(void) { P1SEL |= BIT2 + BIT3 ; //选择 p1.2-TA1 作为PWM输出 第二功能 P1DIR |= BIT2 + BIT3; CCR0 = 20000; //PWM信号频率1KHZ CCTL1 = OUTMOD_7; CCTL2 = OUTMOD_7; TACTL=TASSEL_2 + MC_1 + ID_3 ;// } /********************ADC函数********************/ void initADC12(void) { P6DIR|=0X00; P6SEL|=0X0F; ADC12CTL0=ADC12ON+MSC+SHT0_8+REFON+REF2_5V; ADC12CTL1=SHP+CONSEQ_3; ADC12MCTL0=SREF_1+INCH_0; ADC12MCTL0=SREF_1+INCH_1; ADC12MCTL0=SREF_1+INCH_2; ADC12MCTL0=SREF_1+INCH_3+EOS; ADC12IE=0X08; ADC12CTL0|=ENC; _EINT(); ADC12CTL0|=ADC12SC;//开始转换 } # pragma vector=ADC_VECTOR __interrupt void ADC12ISR(void) { A0result[index]=ADC12MEM0; A1result[index]=ADC12MEM1; A2result[index]=ADC12MEM2; A3result[index]=ADC12MEM3; index=(index+1)%Num_Of_Results; } /********************延时函数********************/ void Delay(uint num) { uint kk,i; for(i=0; i } void main( void ) { WDTCTL = WDTPW+WDTHOLD; //IE1 |= WDTIE; InitClock();//推荐选择 init_pwm(); initADC12(); x = CCR1; y = CCR2; for(;;) { x0=A0result[index]; x1=A1result[index]; x2=A2result[index]; x3=A3result[index]; if(x0>x2)x=x+180; else if(x0 x=0; if(x1>x3)y=y+180; else if(x1 y=0; } } |
|
相关推荐
3个回答
|
|
你启动AD转换的话就一直在执行AD,始终没有退出中断,你可以把for(;;)里的程序移植到ADC的中断里面试一下,
|
|
|
|
你这样应该可以直接用序列通道单次转换,因为看你的函数多次转换好像没什么意思,然后再for(;;)里面循环启动转换和禁止转换也是可以的
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
3029个成员聚集在这个小组
加入小组2917 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3576 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2336 浏览 1 评论
4795 浏览 1 评论
2571 浏览 1 评论
1317浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3577浏览 2评论
2917浏览 1评论
1495浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 08:35 , Processed in 1.299692 second(s), Total 88, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号