Other Parts Discussed in Thread:MSP430F6779
芯片型号:MSP430F6779
我在TI官网下载的官方例程,在调试定时器时,发现对TA1CCR0初值发生改变时程序就无法运行。这里50000是官方的设置
但是当我改成10000时就无法实现LED闪烁。
Susan Yang:
我会在测试后给您回复
,
user6380774:
好嘞,多谢您啦
,
Susan Yang:
我的测试代码如下,可以闪烁
#include <msp430.h>int main(void) {WDTCTL = WDTPW + WDTHOLD;// Stop WDTP1DIR |= 0x01;// P1.0 outputTA1CCTL0 = CCIE;// CCR0 interrupt enabledTA1CCR0 = 10000;TA1CTL = TASSEL_2 + MC_2 + TACLR;// SMCLK, contmode, clear TAR__bis_SR_register(LPM0_bits + GIE);// Enter LPM0, enable interrupts__no_operation();// For debugger }// Timer1 interrupt service routine #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__) #pragma vector=TIMER1_A0_VECTOR __interrupt void TIMER1_A0_ISR(void) #elif defined(__GNUC__) void __attribute__ ((interrupt(TIMER1_A0_VECTOR))) TIMER1_A0_ISR (void) #else #error Compiler not supported! #endif {P1OUT ^= 0x01;// Toggle P1.0//TA1CCR0 += 50000;// Add Offset to CCR0 }
,
user6380774:
您好,按照TA1CTL = TASSEL_2 + MC_2 + TACLR; 确实可以闪烁,但我现在是增计数模式,不应该设置为TA1CTL = TASSEL_2 + MC_1 + TACLR; 吗?
,
Susan Yang:
增计数模式,设置为TA1CTL = TASSEL_2 + MC_1 + TACLR;
“当我改成10000时就无法实现LED闪烁。”
其实这时候LED也是在闪烁的,但是由于人体的视觉残留,所以感觉是常亮的。您可以将其设置为20000,而后设置为15000来感受一下
,
user6380774:
您好,我刚刚试验了一下,确实是这样效果,非常感谢您的帮助!
,
Susan Yang:
很高兴能帮到您