基于三星 ARM Cortex-A9 Exynos4412处理器的底层实验(WDT、RTC)

news/2024/11/25 10:33:01/

【5】WDT看门狗实验

1.实验目的:掌握WDT用法,WDT的实质:监控CPU程序执行,一旦出现异常,WDT向CPU发送复位中断
2.实验原理:WDT监控CPU:CPU每执行一段程序就要像WDT中刷新写入数值,继续向下计数,实现WDT监控CPU的功能
3.实验步骤:
1)由于WDT属于SOC内部功能模块,因此和外界是没有物理引脚的,所以此时不需要在查看原理图
2)打开用户手册,找到WDT章节,阅读概述(26.1)
在这里插入图片描述
a)看门狗实质是一个16bit的定时器,他有普通定时器中断和复位中断两种功能
b)看门狗内部结构:总线时钟经过两次分频到达WDT
c)初始化WDT(设置复位间隔为1S)
在这里插入图片描述
在这里插入图片描述
对到达WDT的时钟进行分频:
WTCON[15:8] = 249

//设置一级分频:249WDT.WTCON &= ~(0xff<<8);WDT.WTCON |= (249<<8);
	![在这里插入图片描述](https://img-blog.csdnimg.cn/20190125153309290.?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1NoYXduV2FuZzE5OTQ=,size_16,color_FFFFFF,t_70)		

二次分频:
WTCON[4:3] = 3 //分频因子是128

//设置二级分频:128
WDT.WTCON |= (3<<3);

在这里插入图片描述
初始化向下计数器值:
WTCNT = 3125 //当然也可以不初始化,默认是0x8000

//设置定时时间:3WDT.WTCNT = 3125 * 3;

初始化WDT超时时间:
WTDAT = 3125 //当然也可以不设置,这个只是在WDT没有喂狗并且TCNT减到0的时候,WDAT的值会自动重新装载到TCNT继续向下计数,直到减到0,才会产生复位信号

使能复位中断:
WTCON[0] = 1
e)开启WDT
WTCON[5] = 1
3)喂狗
WTCNT = 3125

//4、设置看门狗信号:resetWDT.WTCON &= ~(1<<2);WDT.WTCON |= (1<<0);//5、打开WDTWDT.WTCON |= (1<<5);

代码:

#include "exynos_4412.h"void wdt_init(void)
{//1、设置一级分频:249WDT.WTCON &= ~(0xff<<8);WDT.WTCON |= (249<<8);//2、设置二级分频:128WDT.WTCON |= (3<<3);//3、设置定时时间:3WDT.WTCNT = 3125 * 3;//4、设置看门狗信号:resetWDT.WTCON &= ~(1<<2);WDT.WTCON |= (1<<0);//5、打开WDTWDT.WTCON |= (1<<5);
}void delay(unsigned int time)
{int i;for(; time>0; time--){for(i=200; i>0; i--){;}}
}void wdt_feed(void)
{WDT.WTCNT = 3125 * 3;
}int main(void)
{wdt_init();while(1){delay(500);wdt_feed();}return 0;
}

【6】RTC实验

1.实验目的:掌握RTC实时时钟的功能
2.实验原理:
(1)4412中自带的RTC功能,存放的是当前的年月日时分秒信息,通过从RTC中读取当前开发板时间
(2)RTC除了实时时间之外,还带有闹钟和系统滴答定时的功能
(3)闹钟功能就是提前向RTC中写入一个定时时间,然后使能闹钟功能,当RTC实时时间和定时时间相同后,产生中断(低功耗模式下就是唤醒,正常模式下就是中断)
(4)滴答定时器功能就是向RTC中设置一个计数初始值,当RTC向下计数器的值减到0之后,就会触发中断
3.实验步骤:
(1)读取RTC实时时间实验

a)打开芯片用户手册,找到RTC对应章节阅读概述(27.1)
在这里插入图片描述
RTC中存放当前的时间信息:年月日时分秒
RTC可以在设备断电时使用备用电源工作
RTC的工作时钟频率是32.768KHz
RTC支持闰年,存放时间数据使用的是BCD编码
RTC支持闹钟功能

b)查找手册的中断控制章节(第9章),找到RTC的中断号(9.2.2)
在这里插入图片描述

在这里插入图片描述 alarm功能:
GIC中断号:76
SPI中断号:44
tic滴答定时器功能:
GIC中断号:77
SPI中断号:45

c)初始化RTC
由于是裸板驱动,因此在RTC中的时间都是空的(默认为0),所以需要我们对其初始化,但是从手册中我们知道,如果要改变RTC实时时间,先要使能RTC控制,设置完毕之后要关闭使能设置在这里插入图片描述

RTCCON[0] = 1;

RTCCON |= (1<<0); //使能时间修改

在这里插入图片描述
BCDYEAR = year;

RTC.BCDYEAR = 0x008;

BCDMON = mon;
在这里插入图片描述

RTC.BCDMON = 0x2;

BCDDAYWEEK = day; //Samsung的手册中对天和星期的寄存器弄反了
在这里插入图片描述

RTC.BCDDAY = 0x7;

BCDDAY = week;
在这里插入图片描述

RTC.BCDWEEK = 0x28;

BCDHOUR = hour;
在这里插入图片描述

RTC.BCDHOUR = 0x23;

BCDMIN = min;
在这里插入图片描述

RTC.BCDSEC = 0x55;

BCDSEC = sec;
在这里插入图片描述
RTCCON[0] = 0;

RTCCON &= ~(1<<0); //关闭时间修改

d)读取RTC实时时间
从RTC定时器中读取数据(年月日周时分秒寄存器)

代码:

#include "exynos_4412.h"//typedef struct{
//	unsigned int year;
//	unsigned int mon;
//	unsigned int day;
//	unsigned int week;
//	unsigned int hour;
//	unsigned int min;
//	unsigned int sec;
//}date_t;
//
//
//date_t date;int main(void)
{unsigned int i;//1、初始化时间RTCCON |= (1<<0); //使能时间修改RTC.BCDYEAR = 0x008;RTC.BCDMON = 0x2;RTC.BCDDAY = 0x7;RTC.BCDHOUR = 0x23;RTC.BCDMIN = 0x59;RTC.BCDSEC = 0x55;RTC.BCDWEEK = 0x28;RTCCON &= ~(1<<0); //关闭时间修改while(1){if(i != RTC.BCDSEC){printf("2%03x-%x-%x week:%x   %x-%x-%x\n" , \RTC.BCDYEAR, \RTC.BCDMON, \RTC.BCDWEEK, \RTC.BCDDAY,\RTC.BCDHOUR, \RTC.BCDMIN, \RTC.BCDSEC);i = RTC.BCDSEC;}}return 0;
}

http://www.ppmy.cn/news/502957.html

相关文章

三星拿出了四摄手机,可惜诚意不足,挑战国产手机成奢望

面对着华为连连引领多摄像头手机的风头&#xff0c;三星终于坐不住了&#xff0c;近期发布了一款后置四摄手机galaxy A9&#xff0c;在摄像头数量上终于压了华为一头&#xff0c;不过从媒体发布的A9拍摄图片来看&#xff0c;拍照水平太渣&#xff0c;性能配置又跟不上趟&#x…

cortex A8/A9/A5/A15 智能手机名称整理

转自http://mobile.yesky.com/282/30401782.shtml 在过去的一年半、两年里&#xff0c;很多人开始丢掉他们以前只能装JAVA程序的多功能机&#xff0c;丢掉操作画面不够方便、界面不够炫丽的老智能机&#xff0c;开始换上能玩画面炫丽的游戏、性能强大的Android、IPhone。当然对…

谁更强?ARM Cortex A8/A9核心性能对比

前言 背景介绍 前言&#xff1a; 移动设备的CPU更新换代的速度已经迈进了一个日新月异的阶段&#xff0c;去年的Cortex-A8处理器将移动芯片的工作频率带到了1GHz的时代&#xff0c;而今年&#xff0c;全新的Cortex-A9处理器则直接让手机、平板电脑这些便携式移动设备迈入了双核…

管理类联考——逻辑——技巧篇——形式逻辑——秒杀思路

第一章&#xff1a;说明 形式逻辑出现频次 8-10 道 形式逻辑细分思路 直言命题三段论与文氏图AEIO 与模态命题形式逻辑复合命题固定秒杀思路 说明&#xff1a; AEIO 全称肯定命题&#xff1a;所有 S 都是 P&#xff0c;记作 SAP。 简称为“A” 全称否定命题&#xff1a;所…

三星a9android系统耗电量大,【三星GalaxyA9Star评测】续航:五小时耗电剩余46% 使用一天无压力_三星 Galaxy A9 Star_手机评测-中关村在线...

续航&#xff1a;五小时耗电剩余46% 使用一天无压力 续航部分&#xff0c;三星Galaxy A9 Star的升级在于在7.6mm的轻薄机身内塞进了3700mAh大容量的电池。测试续航中5小时重度使用剩余电量46%&#xff0c;可以肯定的一点是&#xff0c;周末在家无论是打王者荣耀还是看电影&…

三星galaxy a9android,【三星2016版GALAXYA9评测】最新版智能管理器_三星 2016版GALAXY A9_手机评测-中关村在线...

系统上三星Galaxy A9(A9000)搭载基于Android 5.1.1定制的最新TouchWiz&#xff0c;风格上也非常契合年轻消费群体&#xff0c;UI及系统应用都偏向淡雅配色和轻盈的扁平设计。 而作为一款中高端定位的机型&#xff0c;三星Galaxy A9(A9000)也提供了指纹识别服务&#xff0c;依托…

QT学习之旅 - network连接

文章目录 网络知识点IP地址IPv4和IPv6 端口号(协议端口)端口分类UDP端口和TCP端口 networkpro文件.h文件.cpp文件 UDP连接绑定端口绑定成功后等待对方进行连接点击发送源码扩展: nodejs-udp服务端(用于跟QT程序进行通信)现象 网络知识点 IP地址 192.168.127.170(√) 192.168.…

生成2个text文件并压缩成zip文件返回给浏览器不生成临时文件

//生成2个text文件并压缩成zip文件返回给浏览器不生成临时文件 try {response.setContentType("application/octet-stream");response.setHeader("Content-Disposition", "attachment; filename" URLEncoder.encode("test.zip", &quo…