完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
求大神帮我改改msp430的ad7705驱动程序,谢谢!
只是驱动程序部分(不出数据) #define sclk_1 P6OUT|= BIT4 #define sclk_0 P6OUT&=~BIT4 #define din_1 P6OUT|= BIT5 #define din_0 P6OUT&=~BIT5 #define dout P6IN&BIT6 #define ready P6IN&BIT7 #define uchar unsigned char #define uint unsigned int //函数声明 void pio_initial(void); void ms(uchar k); void ad7705_initial(void); void write_8bit(uchar dat_8); unsigned int read_16bit(void); //端口初始化 void pio_initial(void) { P6SEL=0X00; P6DIR=BIT4+BIT5; P6DIR&=~BIT6; //读出数据 P6DIR&=~BIT7; //数据读写状态的判断 } //延时1ms void ms(uchar k) { uchar i,j; for(i=0;i } //AD7705芯片初始化 void ad7705_initial(void) { uchar i=0; sclk_1; //时钟拉高 din_1; for(i=0;i<40;i++) //不要使用中文加括号 { sclk_0; sclk_1; } write_8bit(0x20); //下一次进入时钟寄存器,写操作,选择通道1 write_8bit(0x06); //选择更新速率为250Hz write_8bit(0x10); //先写通信寄存器,选择通道1 write_8bit(0x5c); //自校准模式,单极性,增益为1 ms(255); //延时50ms } //写8位数据 void write_8bit(uchar dat_8) { uchar i=0; uchar bit=0x80; sclk_1; //时钟拉高 for(i=0;i<40;i++) { if(dat_8&bit) din_1; else din_0; sclk_0; //时钟拉低,等待数据更新 sclk_1; //上升沿触发,写入数据 bit=bit>>1; } sclk_1; //时钟拉高 din_1; } //读16位数据 unsigned int read_16bit(void) { uchar i=0; uint add_16bit=0x0000; write_8bit(0x38); //读操作,选通道1 while(ready); //读有效信号为低电平,等待数据 sclk_1; //时钟拉高 for(i=0;i<16;i++) { add_16bit=add_16bit<<1; //最后一次不需要再移位 sclk_0; //时钟拉低 if(dout) add_16bit=add_16bit+1; sclk_1; //时钟拉高 } sclk_1; //时钟拉高 din_1; return(add_16bit); } |
|
相关推荐
2 个讨论
|
|
只有小组成员才能发言,加入小组>>
3327个成员聚集在这个小组
加入小组9556 浏览 1 评论
10355 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
10677 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2657 浏览 1 评论
5114 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
10685浏览 2评论
10365浏览 1评论
9567浏览 1评论
8223浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 16:17 , Processed in 0.710641 second(s), Total 48, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2310