21ic电子技术开发论坛

标题: 定时器示例程序出错 [打印本页]

作者: gongche    时间: 2018-10-20 19:15
标题: 定时器示例程序出错
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  P11DIR |= 0x07;                           // ACLK, MCLK, SMCLK set out to pins
  P11SEL |= 0x07;                           // P11.0,1,2 for debugging purposes.
  P2SEL |= 0x0E;                            // P2.1 - P2.3 option select 0000 1110
  P2DIR |= 0x0E;                            // P2.1 - P2.3 outputs
  P4DIR |= 0x10;                            // P1.0 - Outputs
  TA1CCTL0 = OUTMOD_4 + CCIE;               // CCR0 toggle, interrupt enabled
  TA1CCTL1 = OUTMOD_4 + CCIE;               // CCR1 toggle, interrupt enabled
  TA1CCTL2 = OUTMOD_4 + CCIE;               // CCR2 toggle, interrupt enabled
  TA1CTL = TASSEL__ACLK + MC__CONTINOUS + TACLR + TAIE;  // ACLK, contmode, clear TAR,
                                            // interrupt enabled

  __bis_SR_register(LPM3_bits + GIE);       // Enter LPM3, interrupts enabled
  __no_operation();                         // For debugger
}

// Timer1 A0 interrupt service routine
#pragma vector=TIMER1_A0_VECTOR
__interrupt void Timer_A0 (void)
{
  TA1CCR0 += 4;                             // Add Offset to CCR0
}

// Timer_A3 Interrupt Vector (TAIV) handler
#pragma vector=TIMER1_A1_VECTOR
__interrupt void TIMER1_A1_ISR(void)
{
  switch(__even_in_range(TA1IV,14))
  {
    case 0: break;                  
    case 2:  TA1CCR1 += 16;                 // Add Offset to CCR1
             break;
    case 4:  TA1CCR2 += 100;                // Add Offset to CCR2
             break;
    case 6:  break;                         // CCR3 not used
    case 8:  break;                         // CCR4 not used
    case 10: break;                         // CCR5 not used
    case 12: break;                         // Reserved not used
    case 14: P4OUT ^= 0x10;                 // overflow
             break;
    default: break;
}
}
作者: chenho    时间: 2018-10-20 19:18
楼主的问题是在P4.4口上得不到周期为4S的方波吗?

作者: zhuhuis    时间: 2018-10-20 19:21
50%占空比,脉宽2S,周期不就是4S吗?

作者: zwll    时间: 2018-10-20 19:23
定时器有什么问题吗????

作者: chuxh    时间: 2018-10-20 19:27
修改IO对周期没有影响的

作者: zhuhuis    时间: 2018-10-20 19:36

这个没有看出什么问题,是做方波信号吗??

作者: juventus9554    时间: 2018-10-20 19:39
楼主理解错误,大家淡定。

作者: stly    时间: 2018-10-20 19:49
是不能进入定时器中断吗?

作者: llljh    时间: 2018-10-20 19:52
计算的频率是技术不对吧。

作者: dingy    时间: 2018-10-20 19:56
如果对于精度没有要求,可以通过定时器实现。

作者: 晓伍    时间: 2018-10-22 11:16
楼主到底什么问题
作者: 八层楼    时间: 2018-10-22 12:04
看着没有问题
作者: 观海    时间: 2018-10-22 12:08
没看出来哪里有问题呀
作者: heimaojingzhang    时间: 2018-10-22 12:52
不知道楼主想说哪里有问题 看代码是没啥问题的
作者: Ryze    时间: 2018-10-24 22:31
定时器有什么问题??
作者: huzi2099    时间: 2018-10-25 09:33
什么人品啊
作者: hanzhen654    时间: 2018-10-25 13:20
示波器看下波形,跟自己预想的是否一致
作者: hanzhen654    时间: 2018-10-25 13:21
也可以用颗led作为指示,频率快了就另说了。
作者: hanzhen654    时间: 2018-10-25 13:21
也可以用逻辑分析仪来采样波形,一样可以的。
作者: hanzhen654    时间: 2018-10-25 13:22
主要还是要检查你的定时器配置,一般配置正确就没什么问题的。




欢迎光临 21ic电子技术开发论坛 (https://bbs.21ic.com/) Powered by Discuz! X3.5