用到SPI采集器件,因为SPI接口被用了,所以用GPIO模拟采集,因为没有采集到数据、工作不正常。就用示波器测,发现测不到波形。测CLK线 一直都是高电平。void Spi432OutByte( u8 d ) /* SPI out data */
{
u8 i;
for ( i = 0; i < 8; i ++ )
{
at91_set_gpio_value(AT91_PIN_PB19, 0); /*clock set 0*/
udelay(1);
if ( d & 0x80 ) at91_set_gpio_value(AT91_PIN_PB18, 1) ;
else at91_set_gpio_value(AT91_PIN_PB18, 0) ;
d <<= 1; /* 数据位是高位在前 */
at91_set_gpio_value(AT91_PIN_PB19, 1); /* clock set 1 */
udelay(1);
}
at91_set_gpio_value(AT91_PIN_PB19, 0);/*clock set 0*/
}
u8 Spi432InByte( void ) /* SPI输入8个位数据 */
{
u8 i, d;
d = 0;
for ( i = 0; i < 8; i ++ )
{
at91_set_gpio_value(AT91_PIN_PB19, 0); /*clock set 0*/
udelay(1);
d <<= 1; /* 数据位是高位在前 */
if ( at91_get_gpio_value(AT91_PIN_PB17) ) d ++;
at91_set_gpio_value(AT91_PIN_PB19, 1); /*clock set 0*/
udelay(1);
}
at91_set_gpio_value(AT91_PIN_PB19, 0); /*clock set 0*/
return( d );
} |