注册 登录
查看: 1029|回复: 8

[电磁组] 关于电磁组测电磁传感器信号

[复制链接]
发表于 2013-6-12 15:32:51 | 显示全部楼层 |阅读模式
RT,假设我用6个电磁传感器,我通过串口采集到六组信号
1,其中程序中电磁传感器最大值最小值,是取hex显示的转换,还是直接取字符串显示的值?还是需要其他转换?
2,我在网上看别人讨论都是一个一个的测量?如何一个一个的测量?
回复

使用道具 举报

发表于 2013-6-12 16:07:24 | 显示全部楼层
打印数据,直接printf 就可以
ADC一个个调用函数采集即可
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-12 16:16:50 | 显示全部楼层
山外メ雲ジ 发表于 2013-6-12 16:07
打印数据,直接printf 就可以
ADC一个个调用函数采集即可

恩,山外哥,我已经可以通过串口看出数据了,现在就是不知道程序里电磁传感器的最大值和最小值是如何确定的,是不是通过串口猎人,字符串显示的值来判断的,直接将字符串显示的最大值和最小值填写进程序即可?
还有为什么不能6个电磁传感器一起测呢?
回复 支持 反对

使用道具 举报

发表于 2013-6-12 17:51:08 | 显示全部楼层
sjl123 发表于 2013-6-12 16:16
恩,山外哥,我已经可以通过串口看出数据了,现在就是不知道程序里电磁传感器的最大值和最小值是如何确定的 ...

你连续调用函数来测6个即可

真正的同时测,是做不到,必须分时复用ADC模块
回复 支持 反对

使用道具 举报

发表于 2013-6-12 18:56:38 | 显示全部楼层
Admin 发表于 2013-6-12 17:51
你连续调用函数来测6个即可

真正的同时测,是做不到,必须分时复用ADC模块

太棒了,感谢楼主
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-12 19:06:04 | 显示全部楼层
Admin 发表于 2013-6-12 17:51
你连续调用函数来测6个即可

真正的同时测,是做不到,必须分时复用ADC模块

void senddate(u16 sum){
  u16 count;
  u16 datecacha0[6]={0};
  u16 datecacha1[6]={0};
  for(count=0;count<sum;count++){
    datecacha0[count]=(u16)ATD_Result[count];
    datecacha1[count]=(u16)ATD_Result[count]>>6;
  }
  uart_putchar (UART5,0xa5);
  for(count=0;count<sum;count++){
    uart_putchar (UART5,datecacha0[count]);
    uart_putchar (UART5,datecacha1[count]);
  }
  uart_putchar (UART5,0xaa);
}

1,山外哥,这是连续调用的函数,通过串口猎人,且我用的是12精度的。但是我却出现了很大的误差。12精度应该是用双字节吗?

2,如果我用字符串显示得出的数据,是不是可以直接用这里面的最大值最小值放入程序里面,需不需要其他的转换?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2013-6-12 19:12:30 | 显示全部楼层
sjl123 发表于 2013-6-12 19:06
void senddate(u16 sum){
  u16 count;
  u16 datecacha0[6]={0};

  1. datecacha1[count]=(u16)ATD_Result[count]>>6;


应该是:
  1. datecacha1[count]=(u16)ATD_Result[count]>>8;


回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-12 20:24:13 | 显示全部楼层
格拉姆 发表于 2013-6-12 19:12
应该是:

恩,调用的时候是不是用一次调一次?
void Get_Average(void)   
  {  
  
   
   ATD_Result[0]=ad_ave(ADC1,SE8, ADC_12bit,10);//对电感1进行次采样求其平均值
   printf("B0转换十次的平均值结果为:%d\n\n", ATD_Result[0]);
   ATD_Result[1]=ad_ave(ADC1,SE9, ADC_12bit,10);//对电感2进行次采样求其平均值
   printf("B1转换十次的平均值结果为:%d\n\n", ATD_Result[1]);
   ATD_Result[2]=ad_ave(ADC1,SE10, ADC_12bit,10);//对电感3进行次采样求其平均值
   printf("B2转换十次的平均值结果为:%d\n\n", ATD_Result[2]);
   ATD_Result[3]=ad_ave(ADC1,SE11, ADC_12bit,10);//对电感4进行次采样求其平均值
   printf("B3转换十次的平均值结果为:%d\n\n", ATD_Result[3]);
   ATD_Result[4]=ad_ave(ADC1,SE12, ADC_12bit,10);//对电感5进行次采样求其平均值
   printf("B4转换十次的平均值结果为:%d\n\n", ATD_Result[4]);
   ATD_Result[5]=ad_ave(ADC1,SE13, ADC_12bit,10);//对电感6进行次采样求其平均值
   printf("B5转换十次的平均值结果为:%d\n\n", ATD_Result[5]);


是在这里面调用吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-12 20:36:05 | 显示全部楼层
格拉姆 发表于 2013-6-12 19:12
应该是:

哥们能不能加QQ讨论下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部