- //******************************************************************************
- // MSP430G2xx3 Demo - Timer_A, Toggle P1.0, CCR0 Cont. Mode ISR, DCO SMCLK
- //
- // Description: Toggle P1.0 using software and TA_0 ISR. Toggles every
- // 50000 SMCLK cycles. SMCLK provides clock source for TACLK.
- // During the TA_0 ISR, P1.0 is toggled and 50000 clock cycles are added to
- // CCR0. TA_0 ISR is triggered every 50000 cycles. CPU is normally off and
- // used only during TA_ISR.
- // ACLK = n/a, MCLK = SMCLK = TACLK = default DCO
- //
- // MSP430G2xx3
- // ---------------
- // /|| XIN|-
- // | | |
- // --|RST XOUT|-
- // | |
- // | P1.0|-->LED
- //
- // D. Dang
- // Texas Instruments Inc.
- // December 2010
- // Built with CCS Version 4.2.0 and IAR Embedded Workbench Version: 5.10
- //******************************************************************************
- #include <msp430g2553.h>
- void main(void)
- {
- WDTCTL = WDTPW + WDTHOLD; // Stop WDT
- P1DIR |= 0x01; // P1.0 output
- CCTL0 = CCIE; // CCR0 interrupt enabled
- CCR0 = 50000;
- TACTL = TASSEL_2 + MC_2; // SMCLK, contmode
- _BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
- }
- // Timer A0 interrupt service routine
- #pragma vector=TIMER0_A0_VECTOR
- __interrupt void Timer_A (void)
- {
- P1OUT ^= 0x01; // Toggle P1.0
- CCR0 += 50000; // Add Offset to CCR0
- }
复制代码
使用430G2553开发板,定时器采用连续计数模式,计数50000个时钟周期,产生中断,中断服务程序中中翻转P1.0电平,
测了一下p1.0输出波形,怎么是这样的?和预期不太一样,感觉应该是一个脉冲宽度为50000个时钟周期的方波,求解答。
而且SMCLK的频率为多少呢,手册没找到
file:///E:FilesByQQMobileFile1492588565486.jpg
file:///E:FilesByQQMobileFile1492588565486.jpg
此帖出自
小平头技术问答
一周热门 更多>