在MSP430中实现硬件精确延时方法.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
www.M 微控设计网 在 MSP430 中实现硬件精确延时方法 DC 微控论坛版主 最新更新 2008.8.25. 在之前我们发布过如何在 IAR EW430 中如何实现高精度软件延时文章,这文章 中的所提到的方法在 IAR EW430 中做延时操作确实非常方便和准确。但这种方法就比较局 限于 IAR EW430 这软件上,有一定依赖性。在众多的 MSP430 用户中,除了 IAR EW430 外,也还有很多优秀的专业工具。比如: CC Essentials、GCC for MSP430、Image Craft for MSP430、HI-TECH C compiler for MSP430、AQ430、Cross Works for MSP430、No ICE for MSP430 等等。多的不说,我们国内常用的还有 CCE-V3 和 AQ430 这两种的工具仅次 于 EW430 之后。为了方便程序的好移植性我们在设计程序时不防考虑以硬件条件为主的 延时方法,这样做在程序转交或移植上有很灵活性。 下面是为大家介绍基于硬件定时器的延时方法。为了更好理解,我们将这些步骤分开 讲解。以 MPS430F1121A 为例,我们首先要确定一个时钟源作为 TA 的时钟输入。在这里 我们使用 LFXT1 工作在高频模式,外部接 8MHZ 晶体和负载电容。如下图 [1] 程序初始化 WDTCTL = WDTPW + WDTHOLD ; // 将这狗干掉 //初始化时基模块 BCSCTL1 |= XTS; // 选择 ACLK = LFXT1,使 LFXT1 工作在高频模式 do Page 1 of 3 在 MSP430 中实现硬件精确延时方法 www.M 微控设计网 { IFG1 = ~OFIFG; // 清除晶体故障标志 for (i = 0xFF; i 0; i--); // 延时 } while ((IFG1 OFIFG) != 0); // 晶体故障标志无置位? IFG1 = ~OFIFG; // 再一次清除晶体故障标志 BCSCTL2 |= SELM_3; // CPU 主时钟 MCLK = LFXT1,这项可选的。 在这面主要设置了低频振荡器工作在高频模式,和 CPU 主时钟为 8MHZ。如果你不需要这 个主时钟,主频也可以使用内部的 DCO 作为主时钟源。 [2] 初始化定时器 A // 设置定时器 A 实现硬件延时 TACTL |= ID_3+TASSEL_1; // 设置 TA 时钟源为 ACLK/8 = 1MHz TACCR0 = 1000; // 载入 CCR0 延时值(1ms 延时值,也就 1000us) 以定时器输入时钟 1MHZ(1us)为例,TACCR0 的初值为 1000 也就是 1ms 值。 根据这个方法,用户可以自行计算或修改自己需要的值。不过这个例子的应用也很不错了, 用户可以直接套用。 [3] 延时的引用 // 延时程序分辨率为 1ms void MsDelay(word ms) { word i; for(i = ms; i 0; i--) { TACCTL0 = ~C

文档评论(0)

docindoc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档