2462|3

8

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

门狗间隔定时器的使用问题。 [复制链接]

思路:WDT时钟选用ACLK,并且调至每四秒中断一次,每次中断结束灯亮一下,程序如下。
编译没有问题,就是实现不了效果,不知问题何在???
小弟430刚入门,看得那英文资料头都大了,各位大侠可否赐教下入门经验,小弟感激不尽。
#include
void main()
{
  WDTCTL = WDT_ADLY_1000;       //WDT is clocked by fACLK (assumed 32KHz), 1000ms
  BCSCTL1 |= DIVA_2;            //辅助系统时钟四分频,则每间隔4s,看门狗中断一次。  
  P1DIR |= BIT0 + BIT6;
  IE1 |= WDTIE;
  while(1)
  {
    unsigned int i;
    _BIS_SR(LPM3_bits + GIE);    //进入低功耗模式3,开系统总中断。
    P1OUT |= BIT0 + BIT6;        //每次跳出中断灯亮
    for(i=48000;i>0;i--);
    P1OUT &= (~BIT0) + (~BIT6);  //延时一定时间灯灭。
  }
}
#pragma vector=WDT_VECTOR
__interrupt void watchdog_timer ()
{
  _BIC_SR_IRQ(LPM3_bits);
}

最新回复

呵呵。。。我也遇到类似的事情,因为用到的是辅助系统时钟ACLK,我想问你那个32.768KHZ你焊接上去没有?  详情 回复 发表于 2012-7-29 13:47
 
点赞 关注

回复
举报

8

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
大神们。。。
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
呵呵。。。我也遇到类似的事情,因为用到的是辅助系统时钟ACLK,我想问你那个32.768KHZ你焊接上去没有?

点评

谢了,就是这个问题。:kiss: 我又精简了一下程序 #include void main() { WDTCTL = WDT_MDLY_32; //WDT is clocked by SMCLK (assumed 1MHz), BCSCTL2 |= DIVS_3; //子系统时钟8分频。  详情 回复 发表于 2012-7-29 18:57
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

4
 

回复 板凳 p471289908 的帖子

谢了,就是这个问题。 我又精简了一下程序
#include
void main()
{
  WDTCTL = WDT_MDLY_32;       //WDT is clocked by SMCLK (assumed 1MHz),
  BCSCTL2 |= DIVS_3;          //子系统时钟8分频。  
  P1DIR |= BIT0;
  IE1 |= WDTIE;
  _BIS_SR(LPM1_bits + GIE);   //不能进入2或3,因为2或3模式子系统时钟是关闭的。

}

#pragma vector=WDT_VECTOR
__interrupt void watchdog_timer ()
{
  P1OUT ^= BIT0;
}
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表