完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
[i][i][i][i][i][i][i][i][i][i][i][i][list]
[*]#include"msp430x14x.h" #include"math.h" #include"init.h" #include"ad9851.h" ulong DAT[200]; ulong V_max,V_min; float V_effective; uchar hz=0; //void init_clock(); void main(void) { uint frequence=100; uint i; float c1; ulong c2; clk_init(); io_init(); init_1602(); interrupt_init(); _EINT(); init_9851(); start_9851_100hz(); while(1) { if((P1IN&BIT0)!=BIT0) { if(hz==0) { start_9851_100hz();//输出100hz frequence=100; } if(hz==1) { start_9851_1khz();//输出1khz frequence=1000; } if(hz==2) { start_9851_10khz();//输出10khz frequence=10000; } } for(i=0;i<200;i++) { DAT[i]=ADS1252(); } RMS(); // V_max=0X7fffff; c1=((float)(V_max))*4.0/0x7fffff; c2=(ulong)(c1*1000); show_1602(frequence,c2); } } //*************************************************** //**************ADS1252*************************// uint ADS1252(void) { //uchar ad_data1=0,ad_data2=0,ad_data3=0; uchar i; ulong ad=0; CLK_L; SCLK_L; for(i=0;i<24;i++) { CLK_H; CLK_L; }//t4 for(i=0;i<6;i++) { CLK_H; CLK_L; }//t2 for(i=0;i<6;i++) { CLK_H; CLK_L; }//t3 CLK_H; CLK_L; SCLK_H; if(DOUT&BIT2) ad=ad|0x01; CLK_H; CLK_L; SCLK_L; CLK_H; CLK_L; CLK_H; CLK_L; for(i=0;i<23;i++) { ad=ad<<1; if(DOUT&BIT2) ad=ad|0x01; SCLK_H; CLK_H; CLK_L; CLK_H; CLK_L; SCLK_L; CLK_H; CLK_L; CLK_H; CLK_L; } SCLK_H; CLK_H; CLK_L; CLK_H; CLK_L; SCLK_L; CLK_H; CLK_L; CLK_H; CLK_L; for(i=0;i<248;i++) { CLK_H; CLK_L; } for(i=0;i<248;i++) { CLK_H; CLK_L; } return ad; //CLK_H; //CLK_L; /*for(i=0;i<8;i++) { SCLK_L; CLK_H; CLK_L; CLK_H; CLK_L; CLK_H; CLK_L; SCLK_H; ad_data1<<=1; if(DOUT&BIT2) { ad_data1+=0x01; } SCLK_L; } for(i=0;i<8;i++) { SCLK_L; CLK_H; CLK_L; CLK_H; CLK_L; CLK_H; CLK_L; SCLK_H; ad_data2<<=1; if(DOUT&BIT2) { ad_data2+=0x01; } SCLK_L; } for(i=0;i<8;i++) { SCLK_L; CLK_H; CLK_L; CLK_H; CLK_L; CLK_H; CLK_L; SCLK_H; ad_data3<<=1; if(DOUT&BIT2) { ad_data3+=0x01; } } SCLK_L; for(i=0;i<253;i++) { CLK_H; CLK_L; } ad=(uint)ad_data1; ad<<=8; ad+=(uint)ad_data2; ad<<=8; ad+=(uint)ad_data3; return ad; */ } //************************RMS***************************// void RMS() { uint i; float convert; V_effective=0.0; V_max=V_min=DAT[0]; for(i=0;iV_max) V_max=DAT[i]; if(DAT[i] |
|
相关推荐
2个回答
|
|
|
430有SPI外设,不需要用IO口来模拟,建议你采用SPI外设在做驱动。
|
|
|
|
|
|
从您提供的代码片段来看,您正在使用MSP430微控制器与ADS1252和1602液晶显示屏进行通信。您提到程序输出的结果显示在1602上总是不对,可能存在以下几个问题:
1. 连接问题:请确保您的MSP430微控制器、ADS1252和1602液晶显示屏之间的连接正确。检查数据线、电源线和地线是否连接正确。 2. 初始化问题:请确保您已经正确初始化了MSP430微控制器、ADS1252和1602液晶显示屏。检查您的初始化代码是否正确,例如`clk_init()`、`io_init()`、`init_1602()`和`init_9851()`等函数。 3. 代码逻辑问题:请检查您的代码逻辑是否正确。例如,您在代码中使用了`if((P1IN&BIT0)!=BIT0)`来判断按键是否被按下,但您没有提供按键的初始化代码。请确保您已经正确初始化了按键,并在按键按下时正确地读取按键状态。 4. 显示问题:请检查您的1602液晶显示屏的显示代码是否正确。例如,您需要确保您已经正确地将数据发送到1602液晶显示屏,并正确地设置了显示参数。 5. ADS1252通信问题:请检查您的ADS1252通信代码是否正确。例如,您需要确保您已经正确地初始化了ADS1252,并在读取数据时正确地设置了通信参数。 建议您逐步调试您的代码,检查每个部分是否正常工作。您可以使用调试器或串口输出来帮助您诊断问题。希望这些建议能帮助您解决问题。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
554 浏览 0 评论
1617 浏览 0 评论
2049 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1516 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1343 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1760浏览 29评论
2787浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1726浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1637浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1648浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 12:41 , Processed in 0.818835 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
343