P2.0就一直是高电平

2019-07-15 00:19发布

折腾了几天定时器,死活也搞不出来,没用外部晶振,用的是内部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就一直是高电平,还望高手指点下,谢谢了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
wuhany
1楼-- · 2019-07-16 04:58
是你的中断相应太频繁了还是?这样的话有可能让IO口一直出入高电平状态的。
lizye
2楼-- · 2019-07-16 06:39

这个看下你的单片机中该p2.0端口的内部上拉电阻的用没,用了的话输出会默认成高电平的。
午夜粪车
3楼-- · 2019-07-16 11:54
好的,我明天去单位试一下,多谢各位大侠了哈,结贴了先        
wangdezhi
4楼-- · 2019-07-16 14:53
IO的电路是什么?
chenci2013
5楼-- · 2019-07-16 14:56
 精彩回答 2  元偷偷看……
biechedan
6楼-- · 2019-07-16 17:50
这个的电平信号太高可能是软件或者硬件的问题。

一周热门 更多>