《字数码管驱动模块》由会员分享,可在线阅读,更多相关《字数码管驱动模块(5页珍藏版)》请在金锄头文库上搜索。
1、HIT(wh)嵌入式研究中心 BB_BIRD 整理制作 嵌入式驱动开发之 8 字数码管 基于 S3C2410 的 8 字数码管驱动模块分析 HIT(wh)嵌入式研究中心 BB_BIRD 2012-4-9 HIT(wh)嵌入式研究中心 BB_BIRD 整理制作 目录 1 8 字数码管的编码方式.2 2 8 字数码管的驱动.2 2.1 8 字数码管驱动概述.2 2.2 8 字数码管驱动初始化.2 2.3 8 字数码管的数据写入.3 3 8 字数码管测试程序.4 HIT(wh)嵌入式研究中心 BB_BIRD 整理制作 1 8 字数码管的编码方式字数码管的编码方式 8 字数码管的一个管脚对应数据的 1
2、bit,8 个管脚正好是 8bit 为一个 char 类型变量。如 下图所示: 图 1-1 8 字数码管编码方式 2 8 字数码管的驱动字数码管的驱动 2.1 8 字数码管驱动概述字数码管驱动概述 8 字数码管的驱动的实质是可以简单做一下说明,配置好 8 字数码管的地址,向地址写 入 8 字数码管对应的数值即可。 2.2 8 字数码管驱动初始化字数码管驱动初始化 8 字数码管的初始化对应的初始化函数为 sLedTube_VA_init 函数, 该函数主要完成的是 HIT(wh)嵌入式研究中心 BB_BIRD 整理制作 主要是两个功能:配置 GPA12 为 nGCS1 模式;获取虚拟地址。具体见
3、下图: 图 2-1 8 字数码管的初始化函数 2.3 8 字数码管的数据写入字数码管的数据写入 8 字数码管的写入,就是向地址中写入测试程序传来的数据。其中,介绍两个第一次用m_user 函数,定义在 asm/uaccess.h 中,主要的作用是从用户态向内核态 copytile 修饰符,其语法的基本用法与 const 是一样的,意义却不同。 向的内容不可改 变, onst 的语义是他修饰的内容不可改变,而 volatile 的 修到的概念。 copy_fro 数据。 Vola 他的语法与 const 类似。如:const char *p 中和 char const *p,指针 p 指 cha
4、r *const p 中,指针 p 不可改变。 但 volatile 与 const 的语义有不同,c 饰 的 变 量 的 意 思 是 直 接 操 作 内 存 。 比 如 下 面 的 *(volatile unsigned char *)sledTube_BaseH = highData 的 语句 中 ,其意 义 为直接 将 highData 中 数据写 入 sledTube_BaseH 地址所对应的内存单元中内存单元中去,而不是在编译阶段经过优化或者转换以后才 写入内存。 这样的话就保证了我们的原始数据一定被送到了我们想让他去的地方而非经过转 换后的数据,保证了数据的原始性。 图 2-2 数据写入 HIT(wh)嵌入式研究中心 BB_BIRD 整理制作 3 8 字数码管测试程序字数码管测试程序 测试程序的意思是,对两个 8 字数码管进行每隔一秒一次的赋值操作,十位递增,各位 递减。 图 3-1 测试程序