[技术求助] 中断的问题

[复制链接]
448|24
 楼主 | 2018-2-13 11:58 | 显示全部楼层 ||阅读模式
程序如下。。。。
#include  <msp430g2553.h>
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;
}
| 2018-2-13 12:01 | 显示全部楼层

什么情况
 楼主 | 2018-2-13 12:05 | 显示全部楼层

想编程长生一个终端来控制pwm的占空比变化,p1.3按键作为中断,可是我按了键发现波形没变化,这是怎么回事
| 2018-2-13 12:08 | 显示全部楼层

用来控制灯的暗灭变化时可以吗
 楼主 | 2018-2-13 12:12 | 显示全部楼层

嗯,到了这个程序里就不行了
| 2018-2-13 12:15 | 显示全部楼层

中断标志位有清除吗   呵呵    仔细查一查   呵呵
| 2018-2-13 12:18 | 显示全部楼层

先测试一下按键中断管用吗
 楼主 | 2018-2-13 12:23 | 显示全部楼层

嗯,那我按大家的说法挨个排查一下,先结贴啦,谢谢哈
| 2018-2-14 21:43 | 显示全部楼层
jiahy 发表于 2018-2-13 12:05
想编程长生一个终端来控制pwm的占空比变化,p1.3按键作为中断,可是我按了键发现波形没变化,这是怎么回事 ...

中断的问题。
| 2018-2-14 21:43 | 显示全部楼层
配置之后在开启中断。
| 2018-2-14 21:43 | 显示全部楼层
你使用的是哪个io?
| 2018-2-14 21:44 | 显示全部楼层
读取不到数据吗
| 2018-2-14 21:44 | 显示全部楼层
有可能是IO驱动不足。
| 2018-2-14 21:45 | 显示全部楼层
你的硬件设计原理图呢
| 2018-2-14 21:45 | 显示全部楼层
检查了软件设置正确。
| 2018-2-14 21:46 | 显示全部楼层
这个可能是硬件的问题。
| 2018-2-14 21:46 | 显示全部楼层
你先检查硬件是不是有问题
| 2018-2-14 21:46 | 显示全部楼层
你的硬件怎么设置的
| 2018-2-14 21:46 | 显示全部楼层
硬件没有问题再检查软件的。
| 2018-2-14 21:46 | 显示全部楼层
IO没有初始化。
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

快速回复 返回顶部 返回列表