P2.0就一直是高电平

[复制链接]
1894|25
 楼主| 午夜粪车 发表于 2017-11-11 13:45 | 显示全部楼层 |阅读模式
折腾了几天定时器,死活也搞不出来,没用外部晶振,用的是内部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 发表于 2017-11-11 13:47 | 显示全部楼层
用debug啊,看看有 没有进中断,有没有跑代码。
huangchui 发表于 2017-11-11 13:49 | 显示全部楼层
中断程序要放在case2处, 一定要仔细看手册中的定义。
zhanghqi 发表于 2017-11-11 13:53 | 显示全部楼层
还有需要学会debug时看寄存器内容。
zhanghqi 发表于 2017-11-11 13:57 | 显示全部楼层
看看寄存器设置问题   感觉是程序进了中断后  没有出来
jiajs 发表于 2017-11-11 13:59 | 显示全部楼层
你的问题是什么?
zhenykun 发表于 2017-11-11 14:01 | 显示全部楼层
配置完系统时钟做个延时吧。
wyjie 发表于 2017-11-11 14:03 | 显示全部楼层
不知道使用DCO需不需要等待其稳定。这样做保险一点吧!
 楼主| 午夜粪车 发表于 2017-11-11 14:05 | 显示全部楼层
好的,我调试看问题在哪吧
wuhany 发表于 2017-11-11 14:07 | 显示全部楼层
是你的中断相应太频繁了还是?这样的话有可能让IO口一直出入高电平状态的。
lizye 发表于 2017-11-11 14:09 | 显示全部楼层

这个看下你的单片机中该p2.0端口的内部上拉电阻的用没,用了的话输出会默认成高电平的。
 楼主| 午夜粪车 发表于 2017-11-11 14:11 | 显示全部楼层
好的,我明天去单位试一下,多谢各位大侠了哈,结贴了先        
wangdezhi 发表于 2017-11-11 21:56 | 显示全部楼层
IO的电路是什么?
chenci2013 发表于 2017-11-11 21:57 | 显示全部楼层
是不是使用的上拉电阻太小了?
biechedan 发表于 2017-11-11 21:59 | 显示全部楼层
这个的电平信号太高可能是软件或者硬件的问题。
chenci2013 发表于 2017-11-11 22:02 | 显示全部楼层
上拉电阻太小造成电平高。
wangdezhi 发表于 2017-11-11 22:02 | 显示全部楼层
配置的IIO是否正确?
biechedan 发表于 2017-11-11 22:02 | 显示全部楼层
楼主使用示波器测量信号了吗?
shenmu2012 发表于 2017-11-13 14:20 | 显示全部楼层
那就是没有进入到定时中断中的
usysm 发表于 2017-11-13 22:57 | 显示全部楼层
程序的有问题?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

867

主题

10194

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部