打印
[技术问答]

【MA35D1】Eadc如何使用Buffer data access

[复制链接]
1954|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
两只袜子|  楼主 | 2023-10-23 09:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Eadc如何使用Buffer data access

使用特权

评论回复
沙发
riplay| | 2023-10-23 13:53 | 只看该作者
以通道5为例
# cd /sys/bus/iio/devices/
# echo 1 > iio_sysfs_trigger/add_trigger
# cat trigger0/name > iio:device1/trigger/current_trigger
# echo 100 > iio:device1/buffer/length
# echo 1 > iio:device1/scan_elements/in_voltage5_en
# echo 1 > iio:device1/buffer/enable
# hexdump -v -e '"iio0:" 100/2 "%2x " "\n"' /dev/iio\:device1
iio0:fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff fff
^C
# echo 0 > iio:device1/buffer/enable
# echo 1 > iio:device1/buffer/enable
# hexdump -v -e '"iio0:" 100/2 "%2x " "\n"' /dev/iio\:device1
iio0:627 62b 626 62b 628 62a 627 62c 627 62a 627 62a 629 62b 627 62a 627 62b 627 62b 627 62b 627 62b 627 62b 627 62b 627 62b 626 62b 627 62b 626 62b 628 62b 627 62c 627 62a 626 62b 626 62b 626 62a 627 62b 627 62a 627 62a 627 62a 627 62a 627 62a 628 62a 627 62a 628 62a 627 62a 627 62b 627 62b 627 62c 627 62b 625 62a 627 62c 627 62a 626 62c 626 62b 627 62b 627 62b 627 62a 627 62a 626 62a 627 62a 627 62a


使用特权

评论回复
板凳
tpgf| | 2023-11-7 09:22 | 只看该作者
EADC和咱们常说的ADC是一样的吗?

使用特权

评论回复
地板
观海| | 2023-11-7 10:22 | 只看该作者
riplay 发表于 2023-10-23 13:53
以通道5为例
# cd /sys/bus/iio/devices/
# echo 1 > iio_sysfs_trigger/add_trigger

这些代码是哪个文件的内容啊

使用特权

评论回复
5
wowu| | 2023-11-7 20:57 | 只看该作者
我把二楼的代码复制到keil里边也没有格式啊

使用特权

评论回复
6
guanjiaer| | 2023-11-7 21:51 | 只看该作者
使用c语言是如何实现的呢 在代码里边

使用特权

评论回复
7
八层楼| | 2023-11-7 22:22 | 只看该作者
二楼的代码使用的是什么编程语言啊

使用特权

评论回复
8
晓伍| | 2023-11-7 22:51 | 只看该作者
先看看手册是不是多个通道公用的一个缓存啊

使用特权

评论回复
9
yangjiaxu| | 2023-12-8 09:04 | 只看该作者
八层楼 发表于 2023-11-7 22:22
二楼的代码使用的是什么编程语言啊

命令行,cmd命令这种

使用特权

评论回复
10
zhizia4f| | 2023-12-17 22:59 | 只看该作者
话说,EADC是啥东西?

使用特权

评论回复
11
两只袜子|  楼主 | 2023-12-18 14:50 | 只看该作者
以下是一个简单的示例,演示如何使用缓冲区数据访问ADC的转换结果:

c
#include <stdio.h>  
#include <stdint.h>  
  
#define BUFFER_SIZE 100  // 缓冲区大小  
  
uint16_t adc_buffer[BUFFER_SIZE];  // 定义ADC缓冲区  
uint16_t buffer_index = 0;  // 缓冲区索引  
  
// ADC转换结果函数  
uint16_t adc_read() {  
    // 在这里实现ADC的读取操作  
    // 假设每次读取的结果是16位整数  
    return 0;  // 示例值,实际值取决于ADC的读取操作  
}  
  
int main() {  
    while (1) {  
        // 从ADC读取数据并存储到缓冲区中  
        adc_buffer[buffer_index] = adc_read();  
        buffer_index++;  
        if (buffer_index >= BUFFER_SIZE) {  
            buffer_index = 0;  // 循环使用缓冲区  
        }  
  
        // 访问缓冲区中的数据并处理  
        for (int i = 0; i < BUFFER_SIZE; i++) {  
            uint16_t data = adc_buffer[i];  
            // 在这里处理数据,例如打印数据到控制台或进行其他操作  
            printf("ADC data: %d\n", data);  
        }  
    }  
    return 0;  
}

使用特权

评论回复
12
q1ngt12| | 2023-12-18 14:55 | 只看该作者
需要初始化EADC的Buffer。配置个buffer就好了

使用特权

评论回复
13
cen9ce| | 2023-12-19 12:05 | 只看该作者
要想使用EADC的话,需要配置EADC的采样率、参考电压、输入通道等参数。

使用特权

评论回复
14
ex7s4| | 2023-12-19 14:21 | 只看该作者
启动EADC开始采样。可以使用软件触发或外部触发来启动采样。

使用特权

评论回复
15
g0d5xs| | 2023-12-19 15:56 | 只看该作者
当EADC完成一次采样后,会触发中断。在中断处理程序中,可以读取Buffer中的数据。

使用特权

评论回复
16
kaif2n9j| | 2023-12-19 16:33 | 只看该作者
我觉得这应该在例程里都应该有的吧

使用特权

评论回复
17
lix1yr| | 2023-12-20 12:21 | 只看该作者
没玩过EADC,用普通的ADC不好么

使用特权

评论回复
18
suw12q| | 2023-12-21 11:34 | 只看该作者
这EADC与ADC有啥不一样,其 优势是啥?

使用特权

评论回复
19
zhizia4f| | 2023-12-23 16:33 | 只看该作者
使用Buffer数据访问可以提高EADC的效率,减少数据丢失的可能性。但是,需要根据具体的硬件平台和开发环境

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2036

主题

7347

帖子

10

粉丝