学习下 linux 数模程序驱动的编写,本节我们实现的功能是实现三路
ADC 数模转换。
驱动程序
驱动程序的名字:“itop4412_adc.c”。
要想把这个驱动注册到内核,先把这个驱动程序放到内核的“driver/char”目录下面,如
下图所示:

Makefile
然后打开 drive/char 目录下面的 Makefile,添加:
obj-$(CONFIG_ADC_CTL) += itop4412_adc.o
如下图所示:

添加完成后保存退出。
Kconfig
打开“drive/char”目录下面的 Kconfig,搜索“LEDS_CTL”,找到之后在下面添加
“DS18B20_CTL”,仿照着“LEDS_CTL”写就可以了,添加内容如下:
config 3LADC_CTL
bool "Enable 3LADC config"
default y
help
Enable 3LADC config
添加完成后如下图所示:

修改完成后保存退出。
添加设备到平台文件
最后使用命令“vim arch/arm/mach-exynos/mach-itop4412.c”,打开平台文件。添
加设备,参考 led 的驱动,添加内容一如下:
#ifdef CONFIG_ADC_CTL
struct platform_device s3c_device_adc_ctl = {
.name = "adc_ctl",
.id = -1,
};
#endif
添加完成后如下图所示:

添加内容二如下:
#ifdef CONFIG_ADC_CTL
&s3c_device_adc_ctl,
#endif
添加完成后如下图所示:

修改完成后保存退出。
内核的编译
内核在编译之前应该先对其进行参数配置。具体讲解可以参考 itop-4412 开发板精英使
用手册 5.3.2,这里以 SCP 2G 核心板为例编译 zImage 内核镜像,那么配置文件为
config_for_linux_scp_elite 使用命令 cp cconfig_for_linux_scp_elite .config 配置,

在内核目录下使用 make menuconfig 命令打开内核配置界面,进入 “Device Drivers
--->”→“Character devices --->”→“ADC driver for iTOP4412”,如下图所示,配置
上宏 定义“ADC_CTL”。

配置完成后保存退出,以免出错可以再查看一遍,然后使用编译命令“make zImage”
编译内核。编译完成后在目录
“/home/topeet/android4.0/iTop4412_Kernel_3.0/arch/arm/boot”下找到新生成的
zImage 编译到开发板,启动开发板。开发板启动之后,使用命令“ls
/sys/devices/platform/”可以查看到新注册的 adc_ctl 设 备,如下图所示。

如下图所示,加载之后使用命令“ls /dev”,可以看到新生成了设备节点 adc。

测试程序
名字:“adctest.c”
在 Ubuntu 系统下新建 ada 文件夹,将写好的 “adctest.c” 拷贝到文件夹下,使用
“arm-none-linux-gnueabi-gcc -o adctest adctest.c -static”命令编译应用。 如下图所
示。

将上图中的文件“adctest” 拷贝到 U 盘。 启动开发板,将 U 盘插入开发板,使用命
令“ mount /dev/sda1 /mnt/udisk/”加载 U 盘符, 有三条命令运行小应“adctest”,
第一条使用命令“./mnt/udisk/adctest 0 0”,运行小应用 “adctest”,如下图所
示:

调整滑动电阻器之后,再次使用测试程序,如下图所示,输出数值会有变化。

滑动变阻器向顺时针旋转,阻值会减小,最小为 0;
滑动变阻器向逆时针旋转,阻值会增大,最大为 10k。
第二条使用命令“./mnt/udisk/adctest 1 0”,运行小应用 “adctest”,如下图所
示:

调整滑动电阻器之后,再次使用测试程序,如下图所示,输出数值会有变化

滑动变阻器向顺时针旋转,阻值会减小,最小为 0;
滑动变阻器向逆时针旋转,阻值会增大,最大为 10k。
第三条使用命令“./mnt/udisk/adctest 1 1”,运行小应用 “adctest”,如下图所
示:

调整滑动电阻器之后,再次使用测试程序,如下图所示,输出数值会有变化。

滑动变阻器向顺时针旋转,阻值会减小,最小为 0;
滑动变阻器向逆时针旋转,阻值会增大,最大为 10k。

转载于:https://www.cnblogs.com/kujiu1/p/9679166.html

iTOP-4412开发板实现3路ADC数模转换驱动例程相关推荐

  1. linux下ad数模转换驱动程序设计,iTOP-4412开发板实现3路ADC数模转换驱动例程

    学习下 linux 数模程序驱动的编写,本节我们实现的功能是实现三路 ADC 数模转换. 驱动程序 驱动程序的名字:"itop4412_adc.c". 要想把这个驱动注册到内核,先 ...

  2. 分析2440开发板和4412开发板的性价比_初学者你们怎么看?

    嵌入式与物联网开发板系列-4412开发板,如果了解当前IT和物联网的趋势,就会发现Android工程师越来越瘦欢迎,而且相比之下单纯的Linux工程师却逊色不少, 当然Android系统的内核也是Li ...

  3. 4412开发板UT-Exynos4412三星ARM四核旗舰开发平台android4.0GPS功能

    经过2012年的等待,四核的开发平台终于跟广大嵌入从业人员见面了,下面让我们来看下UT-Exynos 4412 开发板的详细参数吧,共广大嵌入式开发人员参考. 一.UT-Exynos 4412开发板高 ...

  4. 4412开发板UT-Exynos4412三星A9四核4412开发平台调试android4.0GPS功能信号超强

    三星四核开发板UT-Exynos 4412 调试android4.0.4 GPS 功能,信号超强 硬件平台:UT-Exynos 4412SamSung A9四核4412开发平台[友坚提供] 软件平台: ...

  5. 4412开发板Qt定时器-实验步骤和部分代码

    实验目标:实现计时器功能,并且点击打点按钮将当前时间打印出来. 用到的类有 QTimer 和 QTime,QTimer 是一个计时器类,相当于秒表,QTimer 是一个时间类,相当于手表. 一:实验步 ...

  6. 4412开发板学习之Linux驱动开发(八):GPIO读操作与按键轮询实现

    GPIO读操作与按键轮询实现 GPIO读操作 硬件 查找对应IO口 寄存器配置 软件 需要的函数 注册设备 代码及分析 实验效果 按键轮询实现 原理分析 硬件 软件 用到的函数 先前准备工作 代码及分 ...

  7. 迅为4412开发板驱动-linux 开机 logo 的修改方法

    文档主要介绍 4412 开发板的内核启动 LOGO,请注意如果要修改的屏幕分辨率小于480x640,请参考另外的独立文档"iTOP-4412-内核-4.3 寸屏幕-logo 修改_V1.0& ...

  8. 迅为4412开发板-步进电机-驱动和测试例程

    迅为4412开发板-步进电机-驱动和测试例程 和本文档配套的资料有: 1 内核配置和步进电机驱动补丁包: topeet_modules_20190319.tar.gz 2 linux-C 的测试例程: ...

  9. 4412开发板和4418开发板有什么区别-荣品电子

    4418是4412的简化版,不过成本也低了 1.先是芯片对比. 两个芯片都是三星出的四核cortex-a9芯片.目前4412芯片是停产了. 2.开发板对比 4412开发板有3G版和4G版,具体就不说了 ...

最新文章

  1. 达观杯_构建模型(一)linearSVM
  2. android唤醒屏幕并解锁
  3. VS2019中接连MySQL全部过程
  4. jQuery遇见的转化关联数组为json的坑
  5. C语言中临时变量写在哪里,C语言中不允许创建临时变量,交换两个数的内容
  6. 凸优化第六章逼近与拟合 6.3 正则化逼近
  7. Word宏的利用学习
  8. 微信小程序npm引用ui框架
  9. linux ubuntu vim复制粘贴,关于vim的复制粘贴
  10. Python Tkinter 下载器 多任务下载+多线程下载+多任务断点续存
  11. Unity3D空战游戏模板 Air Warfare Pro
  12. 云主机搭建Git服务器
  13. MySql 配置 方法
  14. 将两个有序顺序表合并为一个新的有序顺序表MergeList_Sq
  15. win10局域网中设置共享文件夹
  16. java 角色管理代码_后台管理系统-角色管理模块
  17. 最新版SwitchHosts下载安装教程
  18. django官方文档——使用多个数据库
  19. ZooKeeper : Curator框架之分布式锁InterProcessReadWriteLock
  20. ElasticSearch 5. 搭建ES集群

热门文章

  1. 企业非法集资风险预测_2020CCF--企业非法集资风险预测83.35baseline
  2. 解决 swap file “*.swp”already exists!问题
  3. mybatis使用statement.getGenreatedKeys(); useGeneratedKeys=”true”;使用自增主键获取主键值策略和Oracle不支持自增,Oracle使用序列
  4. 服务器优化:Tomcat、JVM性能调优笔记
  5. Linux最全命令详解,请记下来!
  6. 网络技巧:分享几个路由器设置小技巧,总有用得到的一天!
  7. php的正则表达式函数,php中常用的正则表达式函数
  8. linux arp 防火墙关闭,如何关闭ARP防火墙
  9. java流读取xml_使用FileInputStream(用于Java)读取XML文件?
  10. Linux内核 TCP/IP、Socket参数调优