完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
MSP430在设置DCO时钟时有一个公式 DCO = DELTA*(4096),这个是怎么来的,还有当定时器用作捕捉功能时如果TACCTL0的CCISx选GND,那么定时器捕捉的是哪个信号?
程序: void Set_DCO (void) // Set DCO to selected frequency //------------------------------------------------------------------------------ { #define DELTA 488 // Target DCO = DELTA*(4096) = 2MHz unsigned int Compare, Oldcapture = 0; CCTL2 = CM_1 + CCIS_1 + CAP; // CAP, ACLK TACTL = TASSEL_2 + MC_2 + TACLR; // SMCLK, cont-mode, clear while (1) { while (!(CCIFG & CCTL2)); // Wait until capture occured CCTL2 &= ~CCIFG; // Capture occured, clear flag Compare = CCR2; // Get current captured SMCLK Compare = Compare - Oldcapture; // SMCLK difference Oldcapture = CCR2; // Save current captured SMCLK if (DELTA == Compare) break; // If equal, leave "while(1)" else if (DELTA < Compare) { DCOCTL--; if (DCOCTL == 0xFF) // DCO is too fast, slow it down { if (!(BCSCTL1 == (XT2OFF + DIVA_3))) BCSCTL1--; // Did DCO role under?, Sel lower RSEL } } else { DCOCTL++; // DCO is too slow, speed it down if (DCOCTL == 0x00) { if (!(BCSCTL1 == (XT2OFF + DIVA_3 + 0x07))) BCSCTL1++; // Did DCO role over? Sel higher RSEL } } } CCTL2 = 0; // Stop CCR2 TACTL = 0; // Stop Timer_A } |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
2972个成员聚集在这个小组
加入小组2762 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3273 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2298 浏览 1 评论
4738 浏览 1 评论
2514 浏览 1 评论
1040浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3274浏览 2评论
2762浏览 1评论
1170浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-7 17:48 , Processed in 1.285798 second(s), Total 76, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号