字符设备---ADC(自己配置硬件寄存器)

ADC:两种方式:1.自己配置寄存器

        2.调用三星封装好的函数,这个要简单一些:

由于我们是初学,在这里我采用第一种方法进行ADC设备驱动的编写:

        有很多传感器,都是经过模拟电压来反应传感器的感应值:比如说温度传感器,气体浓度传感器等。

        这个要结合中断来进行ADC的值的读取:有两种方式:轮询(忙等)和中断,根据具体情况来选择方式:

        配置ADC的寄存器(参数):裸板代码之前已经写过了,这里利用裸板代码为基础进行修改:

        一 :裸板代码写成驱动的过程中要注意两点:第一解决物理地址到虚拟地址的映射:ioremap;第二要打开ADC的硬件时钟:

          精度:10 位  12位  16位等

          分频:设定ADC的采样频率

          开启转换:等待ADC读取电压

          等待转换结束读取ADC寄存器的值:

          时钟:要打开硬件的时钟:

          虚拟地址:ioremap

        二:写成字符设备驱动(轮询的方式)

        三:写成字符设备驱动(中断的方式)

        

          

        

        

              

原文地址:https://www.cnblogs.com/axjlxy/p/9017194.html

时间: 2024-11-05 22:37:34

字符设备---ADC(自己配置硬件寄存器)的相关文章

Linux字符设备和块设备的区别

系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备,这些数据片就称作块.最常见的块设备是硬盘,除此以外,还有软盘驱动器.CD-ROM驱动器和闪存等等许多其他块设备.注意,它们都是以安装文件系统的方式使用的——这也是块设备的一般访问方式. 另一种基本的设备类型是字符设备.字符设备按照字符流的方式被有序访问,像串口和键盘就都属于字符设备.如果一个硬件设备是以字符流的方式被访问的话,那就应该将它归于字符设备:反过来,如果一个设备是随机(无序的)访问的,那么它就属于块设备

【原创】-- linux 字符设备,块设备,网络设备

参考地址:http://blog.chinaunix.net/uid-26322998-id-2981874.html 1.块设备 系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备,这些数据片就称作块.最常见的块设备是硬盘,除此以外,还有软盘驱动器.CD-ROM驱动器和闪存等等许多其他块设备.注意,它们都是以安装文件系统的方式使用的——这也是块设备一般的访问方式.一般访问单位为512k的整数倍. 2.字符设备 另一种基本的设备类型是字符设备.字符设备按照字符流的

linux 字符设备——硬件操作(三)

字符设备驱动--点灯驱动 一.前言 前面简单的写了下字符设备驱动框架(一).(二),接下来操作一下简单的硬件--led灯 二.原理图 (LED1 接到开发板的 GPF4, LED2 接到开发板的 GPF5, LED4 接到开发板的 GPF6) 三.驱动程序 驱动程序和前面所写的(框架一)程序差不多,只是增加了寄存器操作(具体的寄存器描述,请阅读s3c2440 datasheet ,这里就不说明了) #include <linux/init.h> #include <linux/cdev.

linux字符设备驱动

一.字符设备.字符设备驱动与用户空间访问该设备的程序三者之间的关系. 如图,在Linux内核中使用cdev结构体来描述字符设备,通过其成员dev_t来定义设备号(分为主.次设备号)以确定字符设备的唯一性.通过其成员file_operations来定义字符设备驱动提供给VFS的接口函数,如常见的open().read().write()等. 在Linux字符设备驱动中,模块加载函数通过register_chrdev_region( ) 或alloc_chrdev_region( )来静态或者动态获

字符设备驱动之Led驱动学习记录

一.概述 Linux内核就是由各种驱动组成的,内核源码中大约有85%的各种渠道程序的代码.一般来说,编写Linux设备驱动大致流程如下: 1.查看原理图,数据手册,了解设备的操作方法. 2.在内核中找到相近的驱动程序,以它为模板开发. 3.实现驱动的初始化:比如像内核注册这个驱动程序 4.设计要实现的操作:open,close,read,write等 5.实现中断服务(不是必须的) 6.编译该驱动程序到内核中,或insmod命令加载 7.测试驱动程序. 二.驱动程序的加载与卸载 module_i

Linux设备驱动之字符设备驱动

一.linux系统将设备分为3类:字符设备.块设备.网络设备. 应用程序调用的流程框图: 三种设备的定义分别如下, 字符设备:只能一个字节一个字节的读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后顺序进行.字符设备是面向流的设备,常见的字符设备如鼠标.键盘.串口.控制台.LED等. 块设备:是指可以从设备的任意位置读取一定长度的数据设备.块设备如硬盘.磁盘.U盘和SD卡等存储设备. 网络设备:网络设备比较特殊,不在是对文件进行操作,而是由专门的网络接口来实现.应用程序不能直接访

register_chrdev_region/alloc_chrdev_region和cdev注册字符设备驱动

内核提供了三个函数来注册一组字符设备编号,这三个函数分别是 register_chrdev_region().alloc_chrdev_region() 和 register_chrdev(). (1)register_chrdev  比较老的内核注册的形式   早期的驱动(2)register_chrdev_region/alloc_chrdev_region + cdev  新的驱动形式 (3)register_chrdev()函数是老版本里面的设备号注册函数,可以实现静态和动态注册两种方法

Linux 0.11 中字符设备的使用

Linux 0.11 字符设备的使用 一.概述 本文自顶向下一步步探索字符设备的读写是怎么完成的.通常我们在Linux应用程序中用open.read.write对各种类型的文件进行操作.我们可以从键盘输入,然后命令行窗口会显示你的输入,有输出的话则命令行窗口会显示输出.为什么所有的设备在Linux中都被看成是一个个文件,可以通过统一的read.write直接进行读写?文件句柄与终端设备有什么关联?为什么Linux允许多个控制终端登录?tty又是什么东西?读写时将发生哪些硬件中断,驱动程序是怎么回

深入浅出~Linux设备驱动之字符设备驱动

一.linux系统将设备分为3类:字符设备.块设备.网络设备.使用驱动程序: 字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据.字符设备是面向流的设备,常见的字符设备有鼠标.键盘.串口.控制台和LED设备等. 块设备:是指可以从设备的任意位置读取一定长度数据的设备.块设备包括硬盘.磁盘.U盘和SD卡等. 每一个字符设备或块设备都在/dev目录下对应一个设备文件.linux用户程序通过设备文件(或称设备节点)来使用驱动程序操作字符设备和块设备