|
各位大侠好,根据同步时钟采集不到正确的数据,请大家帮忙看看
[复制链接]
我用的是msp430F149,在线仿真状态,用示波器可以看到传感器时钟信号与数据信号(24位)同步,我就用时钟信号触发P1口中断,同时读取数据信号所接端口的输入寄存器,这样一位一位读入
unsigned int W1CTL=0x18;
unsigned long W1DATA1_1=0x0000;
unsigned long W1DATA1=0x0000;
void main(void)
{
WDTCTL=WDTPW+WDTHOLD;
P1IE=0x02;
_EINT();
for(;;)
{
_BIS_SR(LPM3_bits);
_NOP();
}
}
#pragma vector=PORT1_VECTOR
__interrupt void PORT1(void)
{
_DINT();
if((P1IFG&0x02)==0X02)
{
P1IFG&=~0XFF;
if((P1IN & 0x08)==0x08)
{
W1DATA1_1*=0x02;
W1DATA1_1|=0x01;
}
else
{
W1DATA1_1*=0x02;
W1DATA1_1&=~0x01;
}
W1CTL--;
if(W1CTL==0)
{
W1DATA1=W1DATA1_1;
W1DATA1_1=0X0000;
W1CTL=0x18;
}
}
_EINT();
}
这样读取的数据与真实数据有较大的出入,不知道什么地方疏忽了,请各位大侠指点
|
|