一个空间可以放两个网站吗简历怎么制作网站
news/
2025/9/27 11:33:06/
文章来源:
一个空间可以放两个网站吗,简历怎么制作网站,wordpress使用云数据库连接,做电影的网站赚什么钱GPADC
模块介绍
GPADC 是 12bit 采集精度的模数转换模块#xff0c;支持 4 路通道#xff0c;模拟输入范围 0-1.8v#xff0c;最高采样率 1MHZ#xff0c;并且支持数据比较#xff0c;自校验功能#xff0c;同时工作于可配置的四种工作模式#xff1a;
Single mode支持 4 路通道模拟输入范围 0-1.8v最高采样率 1MHZ并且支持数据比较自校验功能同时工作于可配置的四种工作模式
Single mode在指定的通道完成一次转换并将数据放在响应数据寄存器中Single-cycle mode在指定的通道完成一个周期转换并将数据放在响应数据寄存器中Continuous mode在指定的通道持续转换并将数据放在响应数据寄存器中Burst mode边采样边转换并将数据放入 32 字节的 FIFO支持中断控制。
一般来说 GPADC 接口用于 KEY 模块按键的读取一般包括 VOL、VOL-、HOME、MENU、ENTER 等等GPADC0 用于 KEY 的电路如上图。AVCC-AP 为 1.8V 的供电不同的按键按下GPADC 口的电压不同CPU 通过对这个电压的采样来确定具体是那一个按键按下。如下图VOL、VOL-、MENU、ENTER、HOME对应的电压分别为 0.21V、0.41V、0.59V、0.75V、0.88V。 模块配置
其 menuconfig 的配置如下
Kernel Setup ---Drivers Setup ---SoC HAL Drivers ---GPADC devices ---[*] enable gpadc driver[*] enbale gpadc hal APIs Test command源码结构
GPADC 模块源码结构如下所示
rtos-hal/
|--hal/source/gpadc/hal_gpadc.c // hal层接口代码
|--include/hal/sunxi_hal_gpadc.h // 头文件模块接口说明
头文件
#include sunxi_hal_gpadc.hGPADC 初始化接口
GPADC 模块初始化主要初始化时钟中断以及采样率配置等
int hal_gpadc_init(void)参数
无
返回值
0 代表成功负数代表失败
GPADC 通道配置接口
选择并配置 GPADC 某个通道
hal_gpadc_status_t hal_gpadc_channel_init(hal_gpadc_channel_t channal)参数
channel通道号
返回值
0 代表成功负数代表失败
GPADC 通道取消配置接口
取消 GPADC 某个通道配置
hal_gpadc_status_t hal_gpadc_channel_exit(hal_gpadc_channel_t channal)参数
channel通道号
返回值
0 代表成功负数代表失败
GPADC 去初始化接口
GPADC 模块去初始化
hal_gpadc_status_t hal_gpadc_deinit(void)参数
无
返回值
0 代表成功负数代表失败
GPADC 注册回调接口
向应用层提供注册回调接口的功能
hal_gpadc_status_t hal_gpadc_register_callback(hal_gpadc_channel_t channal, gpadc_callback_t user_callback)参数
channel通道号user_callback应用层回调接口
返回值
0 代表成功负数代表失败
模块使用范例
读取电压
#include stdio.h
#include stdlib.h
#include stdint.h
#include string.h
#include unistd.h#include hal_log.h
#include hal_cmd.h
#include sunxi_hal_gpadc.hint channel -1;int cmd_test_gpadc(int argc, char **argv)
{int ret -1;uint32_t vol_data;printf(Run gpadc test\n);if (argc 2){hal_log_err(usage: hal_gpadc channel\n);return -1;}ret hal_gpadc_init();if (ret) {hal_log_err(gpadc init failed!\n);return -1;}channel strtol(argv[1], NULL, 0);if (channel 0 || channel CHANNEL_NUM){hal_log_err(channel %d is wrong, must between 0 and %d\n, CHANNEL_NUM);return -1;}hal_gpadc_channel_init(channel);vol_data gpadc_read_channel_data(channel);printf(channel %d vol data is %u\n, channel, vol_data);hal_gpadc_channel_exit(channel);hal_gpadc_deinit();return 0;
}FINSH_FUNCTION_EXPORT_CMD(cmd_test_gpadc, hal_gpadc, gpadc hal APIs tests)回调方式读取电压
#include stdio.h
#include stdlib.h
#include stdint.h
#include string.h
#include unistd.h#include hal_log.h
#include hal_cmd.h
#include sunxi_hal_gpadc.hint channel -1;int sunxigpadc_irq_callback(uint32_t dada_type, uint32_t data)
{int vol_data;data ((VOL_RANGE / 4096) * data);vol_data data / 1000;printf(channel %d vol data: %d\n, channel, vol_data);hal_gpadc_channel_exit(channel);hal_gpadc_deinit();return 0;
}int cmd_test_gpadc_callback(int argc, char **argv)
{int ret -1;uint32_t vol_data;printf(Run gpadc test\n);if (argc 2){hal_log_err(usage: hal_gpadc channel\n);return -1;}ret hal_gpadc_init();if (ret) {hal_log_err(gpadc init failed!\n);return -1;}channel strtol(argv[1], NULL, 0);if (channel 0 || channel CHANNEL_NUM){hal_log_err(channel %d is wrong, must between 0 and %d\n, CHANNEL_NUM);return -1;}hal_gpadc_channel_init(channel);hal_gpadc_register_callback(channel, sunxigpadc_irq_callback);return 0;
}FINSH_FUNCTION_EXPORT_CMD(cmd_test_gpadc_callback, hal_gpadc callback, gpadc hal APIs tests callback)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/919405.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!