代码如下。请问下比较功能下八种输出的时钟可以用SMCLK吗?下面代码,我把TACTL = TASSEL_1 + MC_1中TASSEL_1改为TASSEL_2后,灯不在闪烁,一直保持发光状态。根据我的实验,我认为在下面代码中,adc采样的是这个outmod4产生的PWM,如果可以用时钟SMCLK的话,那为什么灯不再保持与输出波形相符合的闪烁状态。谢谢!
#include <msp430.h>
int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
ADC10CTL1 = INCH_1 + SHS_2 + CONSEQ_2; // TA0 trigger
ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;
ADC10DTC1 = 0x20; // 32 conversions
P1DIR |= 0x40; // Set P1.0 output
ADC10AE0 |= 0x02; // P1.1 ADC10 option select
TACCR0 = 1024-1; // PWM Period
TACCTL0 = OUTMOD_4; // TACCR0 toggle
TACTL = TASSEL_1 + MC_1; // ///////////////////////////////////////////////////////
for (;;)
{
ADC10CTL0 &= ~ENC;
while (ADC10CTL1 & BUSY); // Wait if ADC10 core is active
ADC10SA = 0x200; // Data buffer start
ADC10CTL0 |= ENC; // Sampling and conversion ready
__bis_SR_register(LPM3_bits + GIE); // Enter LPM3, enable interrupts
P1OUT ^= 0x40; // Toggle P1.0 using exclusive-OR
}
}
// ADC10 interrupt service routine
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
{
__bic_SR_register_on_exit(LPM3_bits); // Clear LPM3 bits from 0(SR)
}
user5274669:
回复 Loops:
再请教您一个问题。430作为主机接收时,UCB0RXIE置位为什么中断向量不是USCIAB0RX_VECTOR,而是USCIAB0TX_VECTOR 呢?谢谢
灰小子:
回复 user5274669:
你看得哪个例程?要根据程序的控制逻辑来看
Loops:
回复 user5274669:
应该是你看错了。你也可以看Datasheet里面的VECTOR的绝对地址