下载此文档

430延时程序.doc


文档分类:通信/电子 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
-
. z.
MSP430是超低功耗16位单片机,越来越受到电子工程师亲睐并得到广泛应用。C程序直观,可读性好,易于移植和维护,已被很多单片机编程人员所采用。MSP430集成开发环境(如。可以根据需要改变时钟节拍,在使用32768 Hz晶振作为时钟源时,可以产生1.9ms、16 ms、250 ms和1000 ms的延时基数。在头文件msp430*l4*.h中,将这4种翻转时间的WDT配置宏定义为:WDT_ADLY_1_9、WDT_ADLY_16、WDT_ADLY_250和WDT_ADLY_1000。如果用DCOCLK作为SMCLK的时钟源,WDT选择SMCLK=1 MHz为时钟源,这样可以有O.064 ms、0.5 ms、8 ms和32 ms延时基数可供使用。
-
. z.
       ②处设置一个标志位,方便WDT ISR判别并进入相应的延时分支。
       ③处一直判别DelayTime标志组中的Delay500ms位,如果处于置位状态,说明所需的延时未到,执行空操作,直到延时时间到,在WDTISR中将Delay500ms复位,跳出while()循环,执行下一条指令。
   
       同理,如果任务2需要30 s延时,通过WDTCTL=WDT_ADLY_1000激活WDT中断,每隔1 s进中断一次,在WDT ISR中判别标志发现是Delay30s置位而不是Delay500ms执行30 s延时程序分支。每中断一次,计数器nS加l,直到计到30,说明30 s延时完成,清零计数器,停顿看门狗(WETCTL=WE)THOLD+WDTPW;)可停顿产生中断,并复位该延时标志,以通知任务延时时间到,可以执行下面的指令了。
      
       在WDT ISR中可以根据延时基数和计数器的搭配实现任意长度的时间延时。在系统程序设计时,先确定所需的不同延时时间,然后在WDT。ISR中添加相应的延时分支即可。嵌入式实时操作系统μC/OS—II移植于MSP430单片机就是使用看门狗定时器产生时钟节拍的。
      
       对于系统比拟简单,只需要单一时长的延时.而又要考虑系统功耗时,介绍另一种使用看门狗定时器中断完成延时的方法。假设要延时1 s,则设定WDT每250 ms中断一次。在需要延时处,启动看门狗定时器并允许其中断,系统进入低功耗模式3(共有5种.模式)休眠。在中断效劳程序中对延时时间累加,当到达1 s时唤醒CPU,并停顿看门狗定时器中断。实例代码如下:
       vold main(vold){
       WDTCTL=WDT_ADT_ADLY_250)
       //启动WDT,每250 ms中断一次
       IEII=WDTIE)//使能看门狗定时器中断
_BIS_SR(LPM3_bitS+GIE);
//系统休眠于低功耗模式3,开总中断
       }
       #pragrna vector=WDT_VECTOR
-
. z.
       —interrupt void WDT_D

430延时程序 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wdggjhm62
  • 文件大小23 KB
  • 时间2022-02-12
最近更新