【LV12 DAY20 RTC实验】

在这里插入图片描述
编程实现通过LED状态显示当前电压范围,并打印产生低压警报时的时间

注:
电压在1501mv~1800mv时,LED2、LED3、LED4、LED5点亮
电压在1001mv~1500mv时,LED2、LED3、LED4点亮
电压在501mv~1000mv时,LED2、LED3点亮
电压在0mv~500mv时,LED2闪烁,且每隔一秒钟向终端打印一次当前的电压值及当前的时间

#include "exynos_4412.h"void delay(unsigned int time){while(time--);}int main(){unsigned int adcvalue;//将adc的转换精度设置为12位ADCCON=ADCCON | (1<<16);//使能adc分频器ADCCON=ADCCON | (1<<14);//设置adc分频值,adc的时钟频率100/(19+1)=5MHZ,转换频率是5MHZ/5=1MHZ;ADCCON=ADCCON & (~(0xff<<6)) | (19<<6);//关闭待机模式,使能正常模式ADCCON=ADCCON & (~(1<<2));//关闭通过读使能ad转换ADCCON=ADCCON & (~(1<<1));//选择转换通道3ADCMUX=3;//LED2控制引脚设置输出模式GPX2.CON=GPX2.CON & (~(0XF<<28)) | (1<<28);//LED3控制引脚设置输出模式GPX1.CON=GPX1.CON & (~(0XF)) | (1);//LED4控制引脚设置输出模式GPF3.CON=GPF3.CON & (~(0XF<<16)) | (1<<16);//LED5控制引脚设置输出模式GPF3.CON=GPF3.CON & (~(0XF<<20)) | (1<<20);unsigned int oldsec=0,newsec=0;//使能RTC控制RTCCON=RTCCON | (1);//校准时间信息RTC.BCDYEAR=0X023;//0000 0010 0011 ---BCD 023 ---十进制35 和十六进制的二进制是一样的RTC.BCDMON=0X12;RTC.BCDDAY=0X7;//因为三星开发板中week和day的地址写反了,所以要交换一下顺序RTC.BCDWEEK=0X31;RTC.BCDHOUR=0X23;RTC.BCDMIN=0X59;RTC.BCDSEC=0X50;RTCCON=RTCCON & (~(1));while(1){//开始转换ADCCON=ADCCON | 1;//等待转换完成while(!(ADCCON & (1<<15)));//读取转换结果adcvalue=ADCDAT & (0XFFF);//将结果转换成实际的电压值//mv 1800/4096 adcvalue=adcvalue * 0.44;if(adcvalue<501){//LED2闪烁//GPX2.DAT=GPX2.DAT | (1<<7);delay(1000000);GPX2.DAT=GPX2.DAT & (~(1<<7));delay(1000000);//其他LED关闭GPX1.DAT=GPX1.DAT & (~1);		GPF3.DAT=GPF3.DAT & (~(1<<4));GPF3.DAT=GPF3.DAT & (~(1<<5));newsec=RTC.BCDSEC;if(oldsec!=newsec){printf("20%x-%x-%x %x %x:%x:%x,adcvalue= %d mv\n",RTC.BCDYEAR,RTC.BCDMON,RTC.BCDWEEK,RTC.BCDDAY,RTC.BCDHOUR,RTC.BCDMIN,RTC.BCDSEC,adcvalue);oldsec=newsec;}}else if(adcvalue>500&&adcvalue<1001){GPX2.DAT=GPX2.DAT | (1<<7);GPX1.DAT=GPX1.DAT | 1;	//关闭LED4,LED5GPF3.DAT=GPF3.DAT & (~(1<<4));GPF3.DAT=GPF3.DAT & (~(1<<5));}else if(adcvalue>1000&&adcvalue<1501){GPX2.DAT=GPX2.DAT | (1<<7);GPX1.DAT=GPX1.DAT | 1;		GPF3.DAT=GPF3.DAT | (1<<4);//关闭LED5GPF3.DAT=GPF3.DAT & (~(1<<5));}else {GPX2.DAT=GPX2.DAT | (1<<7);GPX1.DAT=GPX1.DAT | 1;		GPF3.DAT=GPF3.DAT | (1<<4);GPF3.DAT=GPF3.DAT | (1<<5);}}return 0;}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/625161.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++算法学习心得六.回溯算法(1)

1.回溯算法理论基础 回溯法也可以叫做回溯搜索法&#xff0c;它是一种搜索的方式。回溯是递归的副产品&#xff0c;只要有递归就会有回溯。回溯的本质是穷举,穷举所有可能&#xff0c;然后选出我们想要的答案 回溯法解决的问题 组合问题&#xff1a;N个数里面按一定规则找出…

HTML--CSS--浮动布局及定位布局

正常文档布局 块元素独占一行 行内元素在有多个的时候&#xff0c;就是从左到右排在一行 块元素包括&#xff1a;div,p,hr 行内元素&#xff1a;span,i,img 浮动布局 float 属性&#xff1a; left 向左 right 向右 作用我目前看起来就是浮动元素的宽度是由内容决定的&#x…

Doris学习笔记-Java自定义UDAF

项目最近需要做一些数据统计方面的东西,发现数据字段都是很长一串数字的字符串,Doris自带的函数无法对其进行相应的运算操作,需要扩展实现相关的操作运算。 主要参考官方的文档资料完成相关的自定义扩展。需要注意的是在使用Java代码编写UDAF时,有一些必须实现的函数(标记…

网络安全服务

有效防御Cc、API接口、http、tcp、WEB应用扫描/爬虫、SYN、WAF、DDOS、UDP、入侵、渗透、SQL注入、XXS跨站脚本攻击、远程恶意代码执行、session ion fixation、Webshell攻击、恶意请求&#xff0c;恶意扫描、暴击破解、CSRF等各种攻击。不用迁移数据&#xff0c;服务器用哪里…

HDFS和MapReduce综合实训

文章目录 第1关&#xff1a;WordCount词频统计第2关&#xff1a;HDFS文件读写第3关&#xff1a;倒排索引第4关&#xff1a; 网页排序——PageRank算法 第1关&#xff1a;WordCount词频统计 测试说明 以下是测试样例&#xff1a; 测试输入样例数据集&#xff1a;文本文档test1…

Java实战之每日海报

前言 使用java生成每日海报。 项目起因是巧合下遇到了一篇很棒的文档&#xff0c;说的是用程序来实现每日生成一个海报。如果之后加上自动发布的功能&#xff0c;简直就是太棒了啊&#xff01; 样例图如下&#xff1a; 每日海报 思路 访问某词站的API获取网络图片&#…

GBASE regexp_replace函数 与 db2 translate函数比较

db2 translate函数 以下内容参考自文档&#xff1a; translate 函数 官方示例: 示例1&#xff1a; fn:translate(Test literal,el,om) -- RETURN RESULT: Tost mitoram上述式子的意思为&#xff1a; 对于字符串&#xff1a;‘Test literal’&#xff0c;使用o 替代 e,使用 m…

在线客服系统如何与社交媒体集成?

在线客服系统与社交媒体的集成可以实现以下功能&#xff1a; 直接接入社交媒体平台&#xff1a;通过API集成&#xff0c;客服系统可以与主流社交媒体平台&#xff08;如微信、微博、Facebook等&#xff09;直接对接&#xff0c;客户可以直接在社交媒体上发起咨询或投诉&#x…

Java持久层框架之争:选择最佳方案来提升你的开发效率!

1、前言 在现代软件开发领域&#xff0c;选择适合的持久层框架是至关重要的一步。持久层框架可以帮助我们管理数据访问、数据库连接、事务处理等复杂的数据库操作&#xff0c;从而提升开发效率和代码质量。 然而&#xff0c;在众多的Java持久层框架中&#xff0c;选择最佳方案并…

ActiveMQ:专注消息传递,助您构建高效稳定的系统

在数字化世界的今天&#xff0c;应用程序和系统之间的通信变得日益重要&#xff0c;为了确保数据能够在不同的服务和组件之间高效、可靠地传输&#xff0c;消息队列技术应运而生。 Apache ActiveMQ 作为一种流行的开源消息队列技术&#xff0c;为企业级应用提供了强大的支持&am…

LeeCode前端算法基础100题(19)反转字符串中的单词

一、问题详情: 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意:输入字符串 s中可能会存在前导空格、尾随空格…

防止网站被采集的10个技巧

防止网站被采集的10个技巧 一、robots.txt文件设置 robots.txt文件是用来告诉搜索引擎哪些页面可以被抓取&#xff0c;哪些页面不应该被抓取的。通过修改robots.txt文件&#xff0c;可以控制搜索引擎爬虫对网站的访问行为。 二、设置meta标签 在网页头部添加meta标签&#x…

算法通关村番外篇-LeetCode编程从0到1系列五

大家好我是苏麟 , 今天带来算法通关村番外篇-LeetCode编程从0到1系列五 . 数学 1523. 在区间范围内统计奇数数目 描述 : 给你两个非负整数 low 和 high 。请你返回 low 和 high 之间&#xff08;包括二者&#xff09;奇数的数目。 题目 : LeetCode 1523. 在区间范围内统计奇…

Spring Data JPA 踩过的坑实录

前言 游戏中台一直在使用spring 全家桶&#xff0c; 本文会左右使用Spring Data JPA的坑点记录总结 主要给大家总结介绍了关于使用Spring JPA注意事项及踩过的坑。 案例1&#xff1a; 为什么只调用了 org.springframework.data.repository.CrudRepository#findById(ID id) 却…

孤儿进程与僵尸进程以及僵尸进程的解决

孤儿进程&#xff1a; 定义&#xff1a; 父进程运行结束&#xff0c;但子进程还在运行&#xff08;未运行结束&#xff09;&#xff0c;这样的子进程就称为孤儿进程&#xff08; Orphan Process &#xff09;。 过程&#xff1a; 每当出现一个孤儿进程的时候&#xff0c;内核就…

rtklib读取原始数据是一次读取了一个文件的全部数据

一般来说&#xff0c;rtklib读取观测值文件&#xff08;o文件&#xff09;和导航文件&#xff08;n文件&#xff09;进行解算。 读取文件的时候&#xff0c;并非一次读取一个历元&#xff0c;而是将一个文件所有历元的数据都读取完毕以后&#xff0c;再进行解算。 这看起来是…

《C++大学教程》4.34阶乘

题目&#xff1a; 对一个非负整数n来说&#xff0c;它的阶乘可以写成 n! (读作“n的阶乘”)&#xff0c;其计算公式定义如下&#xff1a; n! n x (n-1) x (n-2)x......x1&#xff08;对于大于1的 n &#xff09; 和 n! 1 ( 对于等于0或者等于1的n ) 例如&#xff0c;5&…

重学Java 6 流程控制语句

我与我&#xff0c;至死不渝 ——24.1.15 模块重点&#xff1a; ①会使用Scanner和Random ②会使用switch以及知道case的穿透性 ③会使用if ④会使用for循环&#xff0c;while循环&#xff0c;嵌套循环 一、键盘录入_Scanner 1.概述&#xff1a;是Java定义好的一个类 2.作用&am…

经典算法-模拟退火算法的python实现

经典算法-模拟退火算法的python实现 模拟退火算法基本思想 模拟退火算法来源于固体退火原理&#xff0c;将固体加温至充分高&#xff0c;再让其徐徐冷却。加温时&#xff0c;固体内部粒子随温度升高变为无序状&#xff0c;内能增大&#xff0c;而缓慢冷却时粒子又逐渐趋有序。…

网络安全等级保护测评规划与设计

笔者单位网络结构日益复杂&#xff0c;应用不断增多&#xff0c;使信息系统面临更多的风险。同时&#xff0c;网络攻防技术发展迅速&#xff0c;攻击的技术门槛随着自动化攻击工具的应用也在不断降低&#xff0c;勒索病毒等未知威胁也开始泛滥。基于此&#xff0c;笔者单位拟进…