打印

P2.0就一直是高电平

[复制链接]
820|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
午夜粪车|  楼主 | 2015-8-13 21:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
折腾了几天定时器,死活也搞不出来,没用外部晶振,用的是内部DCO,现将代码复制如下:


#include "io430.h"
void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
DCOCTL|=0x60;
  BCSCTL1|=0x83;    //DC0 4.25M   RSELx=11,DCOx=3 MODx=0 3V 4.25 MHz
  BCSCTL2|=0x00;
CCTL1|=CCIE;
   CCR1=42500-1;   //准备10ms定时
  TACTL = TASSEL_2+MC_1+TAIE+TACLR;      //TIMA=SMCLK  UP MODE开中断 清计数器
  P2DIR=0X01;    //P2.0输出  对应TIMER1 A

  
  
__bis_SR_register(LPM0_bits+GIE) ;     //开启中断一定要进入低功耗模式嘛?

}

#pragma vector=TIMER1_A1_VECTOR
__interrupt void Timer_A (void)
{
  switch( TAIV )
  {
  case 2:break;
  case 4:    P2OUT^=0X01;    // Capture/compare blocks TACCR1, TACCR2
  case 10:break;
  
}
}

不知道哪里出了问题,测P2.0就一直是高电平,还望高手指点下,谢谢了

相关帖子

沙发
zhaoxqi| | 2015-8-13 21:53 | 只看该作者
用debug啊,看看有 没有进中断,有没有跑代码。

使用特权

评论回复
板凳
huangchui| | 2015-8-13 21:53 | 只看该作者
中断程序要放在case2处, 一定要仔细看手册中的定义。

使用特权

评论回复
地板
jiajs| | 2015-8-13 21:53 | 只看该作者
还有需要学会debug时看寄存器内容。

使用特权

评论回复
5
zhanghqi| | 2015-8-13 21:54 | 只看该作者
看看寄存器设置问题   感觉是程序进了中断后  没有出来

使用特权

评论回复
6
jiajs| | 2015-8-13 21:54 | 只看该作者
你的问题是什么?

使用特权

评论回复
7
zhenykun| | 2015-8-13 21:54 | 只看该作者
配置完系统时钟做个延时吧。

使用特权

评论回复
8
wyjie| | 2015-8-13 21:54 | 只看该作者
不知道使用DCO需不需要等待其稳定。这样做保险一点吧!

使用特权

评论回复
9
午夜粪车|  楼主 | 2015-8-13 21:55 | 只看该作者
好的,我调试看问题在哪吧

使用特权

评论回复
10
firstblood| | 2015-8-15 13:06 | 只看该作者
是你的中断相应太频繁了还是?这样的话有可能让IO口一直出入高电平状态的。

使用特权

评论回复
11
comeon201208| | 2015-8-15 15:14 | 只看该作者
这个看下你的单片机中该p2.0端口的内部上拉电阻的用没,用了的话输出会默认成高电平的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

867

主题

10194

帖子

3

粉丝