可编程标志寄存器学习总结
来源:互联网 发布:淘宝体检中心在哪 编辑:程序博客网 时间:2024/05/16 14:46
1. 可编程标志寄存器在内存中的映射如下:
内存映射地址
寄存器名称
0XFFC0 0700
FIO_FLAG_D
0XFFC0 0704
FIO_FLAG_C
0XFFC0 0708
FIO_FLAG_S
0XFFC0 070C
FIO_FLAG_T
0XFFC0 0710
FIO_MASKA_D
0XFFC0 0714
FIO_MASKA_C
0XFFC0 0718
FIO_MASKA_S
0XFFC0 071C
FIO_MASKA_T
0XFFC0 0720
FIO_MASKB_D
0XFFC0 0724
FIO_MASKB_C
0XFFC0 0728
FIO_MASKB_S
0XFFC0 072C
FIO_MASKB_T
0XFFC0 0730
FIO_DIR
0XFFC0 0734
FIO_POLAR
0XFFC0 0738
FIO_EDGE
0XFFC0 073C
FIO_BOTH
0XFFC0 0740
FIO_INEN
在这里有一个不明白的地方是:明明所有的寄存器都是16位的,两个字节就可以了,为什么所有的都占了四个字节?难道是用于扩展,避免以后出现32位?
由此可以看出,可编程标志寄存器大致可以分为如下几组:
组别
寄存器名称
第一组
FIO_FLAG_D
FIO_FLAG_C
FIO_FLAG_S
FIO_FLAG_T
第二组
FIO_MASKX_D
FIO_MASKX_C
FIO_MASKX_S
FIO_MASKX_T
第三组
FIO_DIR
FIO_POLAR
FIO_EDGE
FIO_BOTH
FIO_INEN
那么这几组寄存器有何关系,它们又是如何组合工作的呢?
所有的寄存器每一位都对应一个PF引脚。
首先我们来介绍下D,C,S,T所分别代表的意义:
D: 为数据,当对它进行写时,指定各个引脚的状态。当对它进行读时,返回的是各个引脚的值。
C,S,T主要用于以下两种情况:
(1)置位,清除或者触发每个输出引脚的状态。
(2)清除从各个输入引脚捕获到的锁存中断状态。
有一点没有搞清楚的是,好像FIO_MASKX_D,FIO_MASKX_S寄存器都能设置使能中断。FIO_MASKX_D也可以像FIO_MASKX_C一样清除中断。
FIO_DIR 1:输出 0:输入
不过当为输入的时候,必须使能缓冲,也即FIO_INEN的相应位要置1.
FIO_POLAR,FIO_EDGE,FIO_BOTH都是用在输入的情况下,当为输出时,没有任何意义。那么它们在输入的时候,到底是用来干什么的呢?当为输入的时候,它们的配置组合是用来解释从各个引脚读出来的1和0到底代表个什么东西。
FIO_POLAR 0:高电平或上升沿
1:低电平或下降沿
FIO_EDGE 0:电平敏感
1:边沿敏感
边沿敏感和电平敏感的区别:
当被配置为边沿敏感时,从D,S,C,T这些寄存器读来的值是具有粘性的。也就是说除非通过用户代码进行清除,否则这些值一旦被设置就不会发生改变。而被设置为电平敏感的引脚,在每个时钟周期都会对引脚的状态进行检查,一旦引脚原先的电平发生了变化,读出来的值也会相应的发生变化。
FIO_BOTH 主要是用来使能在两个边沿(上升沿和下降沿)产生中断,当然前提是FIO_EDGE被设置为边沿敏感,并且当前为输入。
0:单个边沿 1:两个边沿
现在我们来看一下它们组合起来的效果:
FIO_POLAR
FIO_EDGE
FIO_BOTH
MMR设置的效果
0
0
X
从这里可以看出引脚是电平敏感的,FIO_BOTH无效,所以读出来的值为1代表高电平,0代表低电平
0
1
0
单个边沿周期敏感。上升沿为0,下降沿为1
1
0
X
电平敏感。低电平为1,高电平为0,刚好和第一项相反
1
1
0
下降沿为1,上升沿为0,刚好和第二项相反
X
1
1
两个边沿敏感,不管是上升沿还是下降沿都读为1
- 可编程标志寄存器学习总结
- 标志寄存器FLAGS----小总结
- Win32ASM学习[9]: 标志寄存器
- 汇编学习--7.13--标志寄存器
- 汇编学习历程(标志寄存器)
- 汇编学习笔记--标志寄存器
- 标志寄存器
- 标志寄存器
- 标志寄存器
- 标志寄存器
- 标志寄存器
- 标志寄存器
- 标志寄存器
- 标志寄存器
- 标志寄存器
- 标志寄存器
- 标志寄存器
- 标志寄存器
- 防SQL注入之SqlParameter的简单使用[C#]
- 学习 Zend Framework 框架连载(一)
- SQL SERVER 2005转换为SQL2000(转)
- 用酷狗播放音乐时,会显示在msn的头像旁边
- CAS 的logout设置
- 可编程标志寄存器学习总结
- 很好很强大
- 一位帅选简历者说的话!
- 日语通过网页查询小工具
- 一个困惑了我一个下午的简单的问题
- 问佛 - 仓央嘉措
- 杂谈:C# VS JS之readonly的区别
- 一样的问题不一样的解决之道
- 表单系统承元软件java开发