没加高电平的IO得到的值也被拉高了

[复制链接]
629|7
 楼主| pengf 发表于 2016-5-17 21:11 | 显示全部楼层 |阅读模式
最近使用CY24894这款芯片来进行采样,发现把一高电平加在其任意一个IO口上面,其他IO口悬空,但也采样,最后发现,没加高电平的IO得到的值也被拉高了
renyaq 发表于 2016-5-17 21:13 | 显示全部楼层
PSOC 的BUS或者IO口间有容性东西?
supernan 发表于 2016-5-17 21:15 | 显示全部楼层
程序复杂吗
 楼主| pengf 发表于 2016-5-17 21:17 | 显示全部楼层
程序编写上面很简单,把BUS0/1相连,delsigADC的采样端通过PGA接到BUS0,依次接入相应IO进行采样。
kangzj 发表于 2016-5-17 21:18 | 显示全部楼层
你是如何对没加高电平的IO进行采样的? 工程文件可以发上来吗?
 楼主| pengf 发表于 2016-5-17 21:20 | 显示全部楼层
和加高电平的方式是一样的,公司没法上传,这里把代码贴出:
    各个IO口进行采样的程序:
for(i = 0; i < MAX_CHIP_PIN; i++)
{
  
  Setting_IO_Status(ADC_Pin.Port, ADC_Pin.Pin, HIGH_IMPEDANCE_ANALOG, LOW, MUX);   // ADC_Pin connected to BUS
  sample = GetADdata();
  Setting_IO_Status(ADC_Pin.Port, ADC_Pin.Pin, HIGH_IMPEDANCE_ANALOG, LOW, UNMUX);  // ADC_Pin disconnected to BUS
  *p_UsbOutBuffer++ = sample & 0xFF;
  *p_UsbOutBuffer++ = (sample >> 8) & 0xFF;      
}
    AD代码:
unsigned int GetADdata(void)
{
    unsigned char i;
unsigned int Temp;
unsigned long DataSum =0;

for(i=0;i<5;i++)
{
  while((!DelSig_fIsDataAvailable())  && USBFS_INTERFACE_0_OUT_RPT_DATA[0] ==0xff);  
  Temp=DelSig_wGetDataClearFlag();
  if(i<4)
      continue;
  DataSum += Temp;
}
DataSum = DataSum;
    //DelSig_StopAD ();
    return DataSum;
}
supernan 发表于 2016-5-17 21:21 | 显示全部楼层
我看下,有消息联系你
 楼主| pengf 发表于 2016-5-17 21:22 | 显示全部楼层
好的,那我就结贴了哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

718

主题

10129

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部