2540|3

3

帖子

1

TA的资源

一粒金砂(初级)

楼主
 

求大神|我关闭不了定时器 [复制链接]

#include
#define uint unsigned int
#define uchar unsigned char
void PWM_init(uint zkb1,uint zkb2);
void init_clk();
uint count_PWM = 0;
uchar flag = 0;

void main()
{
  WDTCTL = WDTPW + WDTHOLD;
  init_clk();
  PWM_init(200,100);

  P1DIR |= BIT4;
  P1OUT |= BIT4;

  TACCTL0 |= CCIE;
  _EINT();
  while(1)
  {
    if(flag == 1)
     {
      P2OUT  |=  BIT2;
      P2OUT  |=  BIT3;
      flag=0;
      TACCTL0 &= ~CCIE;
      TACTL |= MC_0 ;
      P1OUT |= BIT3;
     }
  }

}
void init_clk()
{
  uint i;
  BCSCTL1 &= ~XT2OFF;         //打开XT振荡器
  BCSCTL2 |= SELM_2+SELS;     
  do
  {
    IFG1 &= ~OFIFG;               //Reset OFIFG
    for(i = 0xff; i > 0; i--);
  }
  while((IFG1 & OFIFG));

}
void PWM_init(uint zkb1,uint zkb2)
{
  P1SEL |= BIT2 + BIT3;
  P1DIR |= BIT2 +BIT3;
  CCR0 = 1200;
  CCTL1 = OUTMOD_7;                         // CCR1 reset/set
  CCR1 = zkb1;                               // CCR1 PWM duty cycle
  CCTL2 = OUTMOD_7;                         // CCR2 reset/set
  CCR2 = zkb2;
  TACTL |= TASSEL_2 + ID_0+ MC_1 ;

  P2DIR |= BIT2 +BIT3;
}


#pragma vector = TIMERA0_VECTOR
__interrupt void TIMER0 (void)
{
count_PWM = count_PWM + 1;
  P2OUT  &= ~ BIT3;
  P2OUT  &= ~ BIT2;
if(count_PWM >= 8000)
{
   count_PWM = 0;
   flag=1;
}

}


最新回复

我公办的电脑上,没有f149的手册。不过我可以告诉你解决的办法: 1、打开user's guide即就是我们说的用户手册,然后在debug状态下,在iar中(我想你用的是iar),查看定时器相关寄存器的值是不是和你写入的值一致。如果不一致请仔细检查程序; 2、ti好像有相关例程,参考人家的例程,不过前提是你要看得懂人家的程序才行哦。  详情 回复 发表于 2016-10-14 15:57
 
点赞 关注

回复
举报

4177

帖子

9

TA的资源

五彩晶圆(高级)

沙发
 
我公办的电脑上,没有f149的手册。不过我可以告诉你解决的办法:
1、打开user's guide即就是我们说的用户手册,然后在debug状态下,在iar中(我想你用的是iar),查看定时器相关寄存器的值是不是和你写入的值一致。如果不一致请仔细检查程序;
2、ti好像有相关例程,参考人家的例程,不过前提是你要看得懂人家的程序才行哦。
 
 

回复

3

帖子

1

TA的资源

一粒金砂(初级)

板凳
 
huaiqiao 发表于 2016-10-14 15:57
我公办的电脑上,没有f149的手册。不过我可以告诉你解决的办法:
1、打开user's guide即就是我们说的用户 ...

谢谢
 
 
 

回复

3

帖子

1

TA的资源

一粒金砂(初级)

4
 
解决了,关闭定时器操作TACTL |= MC_0 +TACLR
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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