完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
模拟量输入 p1.0/a0
输出pwm p2.0/ta1.0 参考电压 p1.4 写的一段程序 但是检测不到pwm输出 求大神指点 #include "MSP430G2553.h" const unsigned int table[1024]={电压值对应不同的周期 }; int main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; ADC10CTL1 = CONSEQ_2+ADC10SSEL_2; // TA0 trigger ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE + SREF_2 ; ADC10DTC1 = 0x01; ADC10AE0 |= 0x01; ADC10CTL0 |=ENC+ADC10SC; while(1) { ADC10CTL0 &= ~ENC; while (ADC10CTL1 & BUSY); // Wait if ADC10 core is active ADC10SA = 0x200; TACTL |= TASSEL1+TACLR; TACCR0=table[ *(int *)0x200]; TACCTL1=OUTMOD_7; TACCR1= table[ *(int *)0x200]/2; P2DIR |= 0x01; P2SEL |= 0x01; TACTL |=MC_1; ADC10CTL0 |= ENC; // Sampling and conversion ready __bis_SR_register(LPM3_bits + GIE); // Enter LPM3, enable interrupts // Toggle P1.0 using exclusive-OR } } // ADC10 interrupt service routine #pragma vector=ADC10_VECTOR __interrupt void ADC10_ISR(void) { __bic_SR_register_on_exit(LPM3_bits); // Clear LPM3 bits from 0(SR) } |
|
相关推荐
4个回答
|
|
你先写个最简单的程序,就直接PWM输出看有没?
|
|
|
|
|
|
|
|
我觉得你可以把CCR0定义为0x3ff,然后我们把每次AD转换的寄存器中存放的值复制给CCR1,因为是十位的AD,所以最大值也为ox3ff,这样就可以实现占空比从0到1的调节了
|
|
|
|
你先写个最简单的程序,就直接PWM输出看有没?
|
|
|
|
只有小组成员才能发言,加入小组>>
3033个成员聚集在这个小组
加入小组2928 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3601 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2341 浏览 1 评论
4804 浏览 1 评论
2573 浏览 1 评论
1328浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3601浏览 2评论
2928浏览 1评论
1510浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 10:57 , Processed in 1.567309 second(s), Total 88, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号