完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位大神,我想用AVR Atmega128控制LDC1000,但LDC1000总是没有反应,请大家帮忙看看
int main(void) { SPI_MasterInit();//启动SPI Init_IO();//端口初始化 //液晶模块初始化 system_init(); //系统初始化,设置IO口属性 delay_ms(100); LCD_clear(); delay_ms(100); //延时100ms LCD_init(); //液晶参数初始化设置 Init_LDC1000();//LDC1000初始化 while(1) { proximtyData[0] = spi_readByte(LDC1000_CMD_PROXLSB); proximtyData[1] = spi_readByte(LDC1000_CMD_PROXMSB); proximtyDataMAX = ((unsigned char) proximtyData[1]<<8) + proximtyData [0]; conversion(proximtyDataMAX);//将proximtyDataMAX转化为一位一位的字符显示出来 LCD_write_char(0,0,wan); LCD_write_char(1,0,qian); LCD_write_char(2,0,bai); LCD_write_char(3,0,shi); LCD_write_char(4,0,ge); LCD_write_char(6,0,'k'); NOP_1; } } 以上是主程序,下面是我根据LDC1000时序写的读写程序 static unsigned char SpiRead(void) { unsigned char i; for (i=0;i<8;i++) { DATA_BUF=DATA_BUF<<1; SCK_1; if ((PINB&0x07)) //读取最高位,保存至最末尾,通过左移位完成整个字节 { DATA_BUF|=0x01; } else { DATA_BUF&=~(0x01); } SCK_0; } return DATA_BUF; } static void SpiWrite(unsigned char send) { unsigned char i; DATA_BUF=send; for (i=0;i<8;i++) { if (((DATA_BUF&0x80) != 0)) //总是发送最高位 { MOSI_1; } else { MOSI_0; } SCK_1; DATA_BUF=DATA_BUF<<1; SCK_0; } } char spi_writeByte( char addr, char data) { txaddr = addr & ~0x80; CSN_0; SpiWrite(txaddr); SpiWrite(data); CSN_1; NOP_1; return 0; } char spi_readByte(char addr) { txaddr = addr | 0x80; CSN_0; SpiWrite(txaddr); rxbuff = SpiRead(); NOP_1; CSN_1; NOP_1; return rxbuff; } //初始化 void Init_LDC1000() { spi_writeByte(LDC1000_CMD_RPMAX, RPMAX); spi_writeByte(LDC1000_CMD_RPMIN, RPMIN); spi_writeByte(LDC1000_CMD_SENSORFREQ, 0x94); spi_writeByte(LDC1000_CMD_LDCCONFIG, 0x17); spi_writeByte(LDC1000_CMD_CLKCONFIG, 0x02); spi_writeByte(LDC1000_CMD_INTCONFIG, 0x02); spi_writeByte(LDC1000_CMD_THRESHILSB, 0x50); spi_writeByte(LDC1000_CMD_THRESHIMSB, 0x14); spi_writeByte(LDC1000_CMD_THRESLOLSB, 0xC0); spi_writeByte(LDC1000_CMD_THRESLOMSB, 0x12); spi_writeByte(LDC1000_CMD_PWRCONFIG, 0x01); } void Init_IO() { DDRB |= 0XF7; CSN_1; // Spi disable SCK_0; } 请能帮上忙的大神一定帮下忙,万分感谢 如果有任何问题问我,请发邮箱951744011@qq.com |
|
相关推荐
4 个讨论
|
|
只有小组成员才能发言,加入小组>>
AVR Atmega16 Bootloader程序与上位机LabView程序
5126 浏览 6 评论
#include <ioavr.h>这个头文件我应该下什么编译器
7769 浏览 0 评论
3028 浏览 2 评论
3103 浏览 1 评论
10055 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 21:15 , Processed in 0.731889 second(s), Total 60, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号