This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于TimerA输出方波后delay 650ms再持续输出方波



各位好, 想在以下程式输出波形7次后 (350ms) , 加入延迟副程式 (650ms) 后再输出波形* 7持续循环, 主要是想控制LED闪烁的频率, 但因为找不到可参考的延迟副程式进行学习, 想请教各位是否有程式范例可提供小弟进行研究? 谢谢

#include "msp430x54x.h"

short Switch = 0;

void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  
  // Timer, ADC => EMG
  P8DIR |= 0x01;
  P8OUT &= ~0x01;
  TA1CCR0 = 2500;
  TA1CCR2 = 2250;
  TA1CCTL0 |= OUTMOD_7 + CCIE;
  TA1CCTL2 |= OUTMOD_7 + CCIE;
  TA1CTL |= TASSEL_2 + MC_3 + TACLR;
  
  while(1)
    __bis_SR_register(LPM0_bits + GIE);
}

#pragma vector=TIMER1_A0_VECTOR
__interrupt void TIMER1_A0(void)7
{
  P8OUT ^= 0x01; // Toggle P8.0
  Switch = 1;
  __bic_SR_register_on_exit(LPM0_bits);
}

// 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; // No interrupt
    case 2: break;
    case 4:
      if(Switch==1)
      {
        P8OUT ^= 0x01;
        Switch = 0;
      }
      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: break;
    default: break;
 }
}