写了个小的测试程序,使用外部时钟输入,但是总没有计数的效果。输入的信号是信号发生器产生的方波(-3V~3V,频率32768Hz),代码如下:
#include "MSP430G2553.h"
#include "LCD_128.h"
#include "HT1621.h"
#include "TCA6416A.h"
unsigned char flag1=0;
unsigned char flag2=0;
unsigned int temp=0;
long temp1;
long FRE=12346;
long adc_sample=0;
long adc_max=0;
unsigned int i;
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; //关狗
TCA6416A_Init();
HT1621_init();
P1DIR |= BIT6; //使用P1.0控制LED闪烁
P1SEL |= BIT0;
P1DIR &= ~BIT0;
TA1CCTL0=CCIE; //Capture/compare interrupt enable
TA1CCR0=32768; //设置计数周期
TA1CTL= TASSEL_0 + MC_1 +TACLR;//选择时钟源,SMCLK;计数模式,连续计数
while(1)
{
_BIS_SR(LPM0_bits + GIE);
temp1=FRE;
}
}
#pragma vector=TIMER1_A0_VECTOR
__interrupt void Timer1_A (void)
{
// _BIC_SR_IRQ(LPM0_bits);
P1OUT^=BIT6;
}
Ling Zhu2:
你好, 发帖重复了。
另外, 输入信号VPP=6V. 超过430的承受范围了
Xiaoguang Wang1:
回复 Ling Zhu2:
不好意思,但是实在是读不出数据啊现在。是上边的寄存器设置有问题还是输入有负电压的方波的问题呢?
灰小子:
建议用高速ad或者高速光耦,把-3V~3V转换到0~vcc的电压范围。再输入msp430