金牌会员
- 积分
- 1000
- 威望
- 550
- 贡献
- 288
- 兑换币
- 335
- 注册时间
- 2013-12-3
- 在线时间
- 81 小时
- 毕业学校
- 上海工程技术大学
|
7#
楼主 |
发表于 2014-7-24 20:14:52
|
只看该作者
本帖最后由 欲望~控♂ 于 2014-7-24 20:18 编辑
独孤行者 发表于 2014-7-24 17:44
我觉得我的时序控制的没什么问题,是要用逻辑分析仪来看吗?要是能跟我说一说整体控制策略那就最好了。
- #include "ADS1252.h"
- #include "ftm.h"
- #include "gpio.h"
- #include "common.h"
- unsigned char ads_data1,ads_data2,ads_data3;
- unsigned char temp1=0x80;
- long a;
- void ADS1252_Int(uint32_t req)
- {
- FTM_PWM_QuickInit(FTM0_CH2_PA05,kPWM_EdgeAligned,req);
- FTM_PWM_ChangeDuty(HW_FTM0, 2, 5000);
-
- GPIO_QuickInit(HW_GPIOC, 12, kGPIO_Mode_IFT); //DOUT
- GPIO_QuickInit(HW_GPIOC, 10, kGPIO_Mode_OPP); //SCLK
-
- }
- void StartADS1252(void)
- {
- ADS1252_SCLK = 1;
- DelayMs(200); //TResetÂú×ã4TDRDY= TReset<20TDRDY(TDRDY=384t) t=1/f
- ADS1252_SCLK = 0;
-
- }
- long ReadADS1252(void)
- {
- uint8_t i ;
-
- ADS1252_SCLK = 1;
- DelayMs(10);
- ADS1252_SCLK = 0;
- DelayMs(10);
- if(ADS1252_DOUT==1) ads_data3+=temp1;
- temp1 >>= 1;
- for(i=0;i<7;i++)
- {
- ADS1252_SCLK = 1;
- DelayMs(10);
- ADS1252_SCLK = 0;
- DelayMs(10);
- if(ADS1252_DOUT==1) ads_data3+=temp1;
- temp1 >>= 1;
- }
-
- temp1=0x80;
- for(i=0;i<8;i++)
- {
- ADS1252_SCLK = 1;
- DelayMs(10);
- ADS1252_SCLK = 0;
- DelayMs(10);
- if(ADS1252_DOUT==1) ads_data2+=temp1;
- temp1 >>= 1;
- }
-
- temp1=0x80;
- for(i=0;i<8;i++)
- {
- ADS1252_SCLK = 1;
- DelayMs(10);
- ADS1252_SCLK = 0;
- DelayMs(10);
- if(ADS1252_DOUT==1) ads_data1+=temp1;
- temp1 >>= 1;
- }
-
- a+=ads_data3;
- a=(a<<8);
- a+=ads_data2;
- a=(a<<8);
- a+=ads_data1;
- }
复制代码
|
|