资料介绍
描述
介绍
让我们构建一个闹钟。
基于Adam Taylor 的 MiniZed 电机控制项目,我们将添加一个 oled Pmod 并将定时器转换为时钟。要设置时间和闹钟时间,我们将使用串口。电机将用于发出警报声。
Vivado 和硬件
从 MiniZed 电机控制项目开始,我们需要为其添加 oled Pmod 和时钟。
下载Digilent Pmod Vivado Library 2019.1并将其放入项目的 IP 目录中,如Digilent Pmod IP 入门指南中所示。
将如下所示的 PmodOLEDrgb 添加到 MiniZed 电机控制项目中:
将oled输出添加到Pmod2。将附加约束文件。显示器的所有接口引脚都是输入(MiniZed的输出)。FCLK_CLK0需要50MHz才能使Pmod IP正常工作。默认情况下,MiniZed上的频率为50MHz。
硬件
将HB3 Pmod添加到Pmod 1连接器的顶行,这正是Adam Taylor设置原始项目的方式。然后,将oled Pmod添加到Pmod 2连接器,屏幕面朝上。
Vitis(软件)
使用MiniZed电机控制代码作为基准,Digilent的IP作为指南,该软件(附件中)更改计时器,以作为时钟的1Hz更新。当时间等于报警时间时,电机运行并鸣响警铃。
代码中发生了什么。。。
绝大多数代码都在设置计时器和/或中断。关于计时器和中断,我从Adam的基线中唯一改变的是TICK_timer_FREQ_Hz的第15行从100 Hz变为1Hz,以及中断函数在触发后会做什么(稍后将详细介绍)。有关计时器中断代码的更多信息,请参阅Adam Taylor的MicroZed编年史第15部分。
有几个变量用于保存时间和报警值。大多数变量都是全局变量。这不是理想的情况,但考虑到这是我在ARM处理器上制作的第一个程序,请原谅这一混乱。
主要功能
主功能设置平台,通过串行端口输出欢迎消息,然后通过OLEDrgb_begin设置oled,这需要#include“PMODOLEDrgb.h”
然后调用从第91行开始的函数display_menu()。在这个程序中,它只被调用一次。这是设置时钟和闹钟时间的地方。我很有意思地发现,两位数字/字符串行端口读取需要scanf函数,而不是用于一个字符输入的读取函数。
然后调用从第286行开始的update_oled()函数。这将输出并格式化屏幕上的时间和报警时间。在display_menu()获取值和每分钟(在中断函数中调用)后,在主函数中调用一次。
接下来,设置并启用计时器中断。然后电机控制引脚被设置,但不是像亚当的程序那样被命令运行。
然后main永远在while循环中等待。其他一切都发生在TickHandler(void*CallBackRef)函数中。
中断功能
时间更新和报警检查发生在TickHandler(void*CallBackRef)函数内部,从第227行开始。如果设置了1Hz TICK_TIMER_FREQ_HZ,则每个中断等于一秒。60秒后,分钟增加,就像一个普通的时钟。每分钟调用一次update_oled()函数来更改时间。根据时间检查报警时间,如果时间相等,电机将打开(第287行)一分钟,开始您的一天。
注意:时钟功能有一个错误,12:59到1:00的滚动…如果你发现了问题,请告诉我。
后果
以下是最终项目的视频:
结论
感谢Hackster和Adam Taylor的构建,并激励我深入FPGA SoC。这是一次非常有趣的体验,希望不久能做更多的项目!希望你学到了一些东西,创造了更大的东西。
- 使用Bolt构建闹钟的最简单方法
- 使用物联网并构建简单的螺栓闹钟
- 围绕WIZ750SR模块构建的会说话闹钟
- 使用单片机设计的多功能闹钟电路原理图 45次下载
- 电子闹钟源码文件下载 10次下载
- 如何使用单片机设置多个闹钟C语言程序免费下载
- 使用51单片机进行闹钟制作的程序免费下载
- DS1302按键调时和闹钟的C语言程序免费下载 50次下载
- 基于单片机的定时闹钟设计 22次下载
- 闹钟 15次下载
- RTC闹钟唤醒实验 19次下载
- 基于labview闹钟的设计 0次下载
- 多功能闹钟原理图
- 采用单片机设计的电子闹钟硬件方案
- LCD电子闹钟
- 利用AI构建实用量子计算应用 123次阅读
- 手动构建Docker镜像的方法 214次阅读
- 神经网络预测模型的构建方法 375次阅读
- 使用PyTorch构建神经网络 412次阅读
- 交换芯片的构建方式 336次阅读
- 使用WebLOAD构建负载测试方案 494次阅读
- 基于51单片机的闹钟系统设计 1668次阅读
- 闹钟的ESD整改案例 634次阅读
- CubeMX配置RTC实现日历和闹钟实验 1644次阅读
- 基于功能强大的子域收集工具 861次阅读
- 镜像构建Dockerfile的介绍 1004次阅读
- 使用功率MOSFET的强大30A直流电机驱动器 4073次阅读
- 基于树莓派3B实现智能闹钟的设计方案 3029次阅读
- EDA实现闹钟铃声设计 1921次阅读
- STM32实现对RTC闹钟唤醒的设计 1.3w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多