A/D板调试
时间:2007-07-04 来源:ly44770
正式的A/D板终于做出来了,趁热赶紧进行测试。令人郁闷的是4片max146,两片行,两片不行。why?奋战了一天,晚上终于搞定。原因出在这两个函数身上:
static inline void AT91_CfgPIO_SPI_CS2(void) {
AT91_SYS->PIOA_PDR = AT91C_PA5_NPCS2;
} static inline void AT91_CfgPIO_SPI_CS3(void) {
AT91_SYS->PIOA_PDR = AT91C_PA6_NPCS3;
}
:-)。它们并不能完成任务。 static inline void AT91_CfgPIO_SPI_CS0(void) {
AT91_SYS->PIOA_PDR = AT91C_PA3_NPCS0;
} static inline void AT91_CfgPIO_SPI_CS1(void) {
AT91_SYS->PIOA_PDR = AT91C_PA4_NPCS1;
}
这两个却可以,所以两片可以,两片不行。 解决方法很简单,就是将I/O线分配给外设A了: AT91_SYS->PIOA_ASR |= (1 << 5); AT91_SYS->PIOA_ASR |= (1 << 6); 调试心得就是多从软件入手,借助printk语句,观察关键状态寄存器,硬件一般都没有问题,:-)。
AT91_SYS->PIOA_PDR = AT91C_PA5_NPCS2;
} static inline void AT91_CfgPIO_SPI_CS3(void) {
AT91_SYS->PIOA_PDR = AT91C_PA6_NPCS3;
}
:-)。它们并不能完成任务。 static inline void AT91_CfgPIO_SPI_CS0(void) {
AT91_SYS->PIOA_PDR = AT91C_PA3_NPCS0;
} static inline void AT91_CfgPIO_SPI_CS1(void) {
AT91_SYS->PIOA_PDR = AT91C_PA4_NPCS1;
}
这两个却可以,所以两片可以,两片不行。 解决方法很简单,就是将I/O线分配给外设A了: AT91_SYS->PIOA_ASR |= (1 << 5); AT91_SYS->PIOA_ASR |= (1 << 6); 调试心得就是多从软件入手,借助printk语句,观察关键状态寄存器,硬件一般都没有问题,:-)。
相关阅读 更多 +










