历史上的今天
今天是:2025年03月12日(星期三)
2020年03月12日 | 嵌入式arm学习总结(五)--RTC-TIME-PWM-Watchdog-AD-TP
2020-03-12 来源:eefocus
RTC
常用RTC模块:
PCF8563 IIC接口
DS302 SPI接口
DS87887 功能多,比较贵
BCD码: 十进制数
压缩BCD码,一个BCD码从0—9,需要4位二进制存储
以BCD,码存数的数 例如:0X59 表示59秒(直接是BCD值,即十进制数)
定时器、PWM
1.定时器的工作原理:以固定的频率(可以编程改变这个频率)进行计数
2.单片机定时器的预置数递增
ARM定时器的预置数为递减
3.GPIO引脚输出电流一般为几毫安到十几毫安
但蜂鸣器的驱动电流至少要几十毫安,所以在用IO口驱动蜂鸣器时要加一个三极管方大电流,并作为开关作用
4.定时器内部工作流程:
1)设置预置数
设定TCNTBn/TCPMBn这两个寄存器,它们表示定时器n的比较值(比较值只与PWM有关,与定时器无关),初始化计数值
2)启动定时器
如果设置了TCON寄存器启动了定时器n,这时TCNTBn/TCMPBn寄存器的值装入内部寄存器TCNTn/TCMPn中,在定时器n的工作频率下,TCNTn开始减1计数,其值可以通过读取TCNTOn寄存器得知
3)PWM管脚第一次反转
当TCNTn的值等于TCMPn的值时,定时器n的输出管脚TOUTn反转,TCNTn继续减1计数
4)PWM管脚第二次反转,如果设置中断模式,那么会触发中断
当TCNTn的值达到0时,定时器n的输出管脚TOUTn再次反转,如果中断使能的话,也会触发中断
5)再重新装载预置数(可以设置为自动加载),然后继续循环
当TCNTn的值达到0时,如果在TCON中将定时器n设为自动加载,则TCNTBn/TCMPBn的值被自动装入内部寄存器TCNTn、TCMPn中,下一个计数流程开始
5.定时器n的输出管脚TOUTn初始状态为高电平(如果TCON[2]=1反转,那么TOUTn的出事状态就为低电平),以后在TCNTn的值等于TCMPn额定值反转一次,TCNTn的值等于0 再反转一次
6.通过设置TCMPn、TCNTBn的值可以设置管脚TOUTn输出信号的占空比,这就是PWM(Pulse Width Modulation),所以定时器又称PWM定时器
7.占空比:一个周期内高电平占的比例
TCNTn决定输出频率
TCMPn决定占空
WatchDog
CAT823/824/825
看门狗原理:
如果看门狗的输入管脚每隔一秒收到一个来自CPU控制器的脉冲信号,那么看门狗的输出就会永远保持低电平(或者高电平)
如果看门狗的输入引脚超过一秒没有收到来自CPU控制器的脉冲信号,那么它的输出引脚就会输出一个20ms的高脉冲(或者低脉冲)
不同的看门狗芯片间隔时间不一样,有些芯片还可以自己设定
在选择芯片间隔时间时应该选最小时间 Time-Out (具体参考WTD的数据手册)
当看门狗的复位功能使能后,它的中断功能就会无效
因为复位优先级最高,复位后重新启动时会关闭所有的中断
S3C2440它有内部RTC和内部看门狗,但在实际产品应用中,一般只能用一个,另外一个要用外部的,
两个同时用可能会存在隐患问题。一般用外部的用WDT 因为WDT芯片 0.5—2元 便宜 但RTC芯片要3—5元
ADC/触摸屏
1.AD芯片选型标准
1)分辨率 多少位的AD 常用 8、10、12位
2)偏移量误差:
输入数字量为零时输出模拟量对零的偏移量这种误差可以通过DAC的外接Vref和电位计加以调整
3)转换精度
满量程时(比如0——5V时5V)实际的值和理论值之间的接近程度
4)转换速度
单位KSPS 每秒转换的次数
2.触摸屏
电阻屏 便宜
电容屏 利用人体等的电容耦合 ,不能使用触摸笔等,只能用人体皮肤接触
表面声波屏
红外屏
近场成像屏
注:以下都是基于S3C2440平台的一些总结
史海拾趣
|
从20世纪30年代开始频率合成技术被人们认识,70多年来,频率合成技术有了较大的发展。频率合成是以一个或几个频率为基础,进行加、减、乘、除四则算术运算,合成出新的频率的一门技术。随着现代通信技术的迅速发展,雷达、宇航和遥控遥测技术的不断 ...… 查看全部问答> |
|
监控系统的接地与防雷接地 监控系统的接地与防雷接地有矛盾么?有!!! 有的防雷器产品厂家明确主张“到处接地”,特别指出摄像机要接地;为了防雷制造了“多点接地”,那地环路问题怎么办? 监控系统的接地要求是:系统(主机)单点接地——摄 ...… 查看全部问答> |
|
原程序只有原版..没有通过IO口选择哪个分之的问题 现在我修改为 用意:现在我的程序P3.6口如果是高电平选择上面程序,,,如果是低电平选择下面程序 总的大程序原来里面多处出现 JMP PAN_END&nb ...… 查看全部问答> |
|
读system_LPC11xx.c,发现点问题,求教高手代码447-449行#if (MEMMAP_SETUP || MEMMAP_INIT) /* Memory Mapping Setup ...… 查看全部问答> |
|
现在想用 2440 通过 2 个硬解码芯片同时播放 2 路音乐; 音乐文件是存放在 2440 主板上的 SD 卡中; 这种芯片最好是可以通过 SPI 接口传输数据的; 因为 2440 包含 2 路 SPI 接口。 不知道有没有做过类似项目的朋友,帮忙推荐一下!… 查看全部问答> |
|
对于linux下的usb蓝牙适配器驱动hci_usb.c中的一些宏(如HCI_RESET)是什么意思? 以下这些宏是什么意思,有何用途? #define HCI_IGNORE 0x01 #define HCI_RESET 0x02 #define HCI_DIGIANSWER 0x04 #define HCI_SNIFFER 0x08 #define HCI_BROKEN_ISOC 0x10 #define HCI_BCM92035 0x20… 查看全部问答> |
|
EVC编写的adodc访问SQLCE数据库的程序如何写到系统镜像中 大家好: 请问,在EVC下写的利用adodc3.0访问SQLCE数据库的程序怎么加到CE系统镜像中呢? adodc和SQLCE要用的动态库我已经加到系统里了,但是通过EVC把程序下载到板子里后,当时是可以运行的,但是重起后,就不行了,提示\"找 ...… 查看全部问答> |




