[应用相关] 中断的问题

[复制链接]
451|11
 楼主| ousj 发表于 2019-10-13 17:38 | 显示全部楼层 |阅读模式
TI, se, ST, ic, IO

void key_init();
void main(void)
{
static int i;
//XTS(1);
//XT1OFF(0);
//XT1BYPASS(0);
//XCAP(0);
  _EINT();         //打开全局中断
  WDTCTL = WDTPW + WDTHOLD;
// Stop WDT禁止看门狗
  P1DIR |= BIT2;                          // P1.2 and P1.3 TA1/2 options 1为选引脚第二功能,0为引脚第一功能1
  P1SEL |= BIT2;
  CCR0 = 512-1;                             // PWM Period
  CCTL1 = OUTMOD_7;// CCR1 reset/set
i=168;
  CCR1 =i;              // CCR1 PWM duty cycle
TACTL = TASSEL_1 + MC_1;                  // ACLK时钟, 上升沿捕获
_BIS_SR(CPUOFF);                          // Enter LPM0

}
void key_init()
{
P1DIR&=~BIT3;     //P1.3为输入
   P1REN|=BIT3; //设置上拉
   P1OUT|=BIT3;
  P1IES|=BIT3; //高电平到低电平有效,即下降沿
  P1IFG&=~BIT3; //清除中断标志,带上这句最好
  P1IE|=BIT3;
}
#pragma vector=PORT1_VECTOR //中断
__interrupt void port1(void)
{
if(P1IFG&BIT3)
{
  static int i;
  if(i<=511)
    i += 168;
  else i = 0;      // 调整占空比
    P1IFG&=~BIT3; //这句清除中断标志
}
else
    P1IFG=0X00;
}
想编程长生一个终端来控制pwm的占空比变化,p1.3按键作为中断,可是我按了键发现波形没变化,这是怎么回事?
bqyj 发表于 2019-10-13 17:40 | 显示全部楼层
用来控制灯的暗灭变化时可以吗?
huanghuac 发表于 2019-10-13 17:43 | 显示全部楼层
中断标志位有清除吗   呵呵    仔细查一查  
zhuhuis 发表于 2019-10-13 17:49 | 显示全部楼层
先测试一下按键中断管用吗?
wenfen 发表于 2019-10-13 17:51 | 显示全部楼层
配置之后再开启中断试试看。
tian111 发表于 2019-10-13 17:54 | 显示全部楼层
读取不到数据吗?有可能是IO驱动不足。
huanghuac 发表于 2019-10-13 17:57 | 显示全部楼层
这个可能是硬件的问题。
chenho 发表于 2019-10-13 18:00 | 显示全部楼层
硬件没有问题再检查软件的。
bqyj 发表于 2019-10-13 18:03 | 显示全部楼层

是不是中断程序没有执行呢??
gongche 发表于 2019-10-13 18:07 | 显示全部楼层
这是哪个单片机
huwr 发表于 2019-10-13 18:10 | 显示全部楼层

按了键,单片机有没有读取到变化?
变化了,有没有执行到PWM更改?
huwr 发表于 2019-10-13 18:14 | 显示全部楼层
可能是IO驱动不足
您需要登录后才可以回帖 登录 | 注册

本版积分规则

712

主题

7557

帖子

1

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