打印
[应用相关]

中断的问题

[复制链接]
334|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 | 只看该作者
先测试一下按键中断管用吗?

使用特权

评论回复
5
wenfen| | 2019-10-13 17:51 | 只看该作者
配置之后再开启中断试试看。

使用特权

评论回复
6
tian111| | 2019-10-13 17:54 | 只看该作者
读取不到数据吗?有可能是IO驱动不足。

使用特权

评论回复
7
huanghuac| | 2019-10-13 17:57 | 只看该作者
这个可能是硬件的问题。

使用特权

评论回复
8
chenho| | 2019-10-13 18:00 | 只看该作者
硬件没有问题再检查软件的。

使用特权

评论回复
9
bqyj| | 2019-10-13 18:03 | 只看该作者

是不是中断程序没有执行呢??

使用特权

评论回复
10
gongche| | 2019-10-13 18:07 | 只看该作者
这是哪个单片机

使用特权

评论回复
11
huwr| | 2019-10-13 18:10 | 只看该作者

按了键,单片机有没有读取到变化?
变化了,有没有执行到PWM更改?

使用特权

评论回复
12
huwr| | 2019-10-13 18:14 | 只看该作者
可能是IO驱动不足

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

712

主题

7557

帖子

1

粉丝