电压比较器
注意:该功能仅适用于 ShineBlink C1 Mini 开发板,C2 内部不具备电压比较器。
一、实现功能
Core 提供 1 个比较器,输入端固定为 Core 的 A0。参考电压可以取 (1/16~15/16) 倍的 3.3v 电压值。并且可以配置成检测电压上升、下降或上升下降都检测。比较器内部自带迟滞功能,迟滞电压为 50mv 左右,提高了抗干扰能力。
本实例配置电压比较器的参考电压为 0.75*3.3v,当 A0 引脚上的电压升高到大于参考电压时 LIB_CompCallBack 函数会自动被 Lua 调用,并 print() 打印输出。
二、接线图
三、完整代码
--定义比较器的回调函数,该函数在比较器输入电压高于0.75倍的Vdd时会自动被调用
function LIB_CompCallBack()
print("Input voltage up\r\n")
end
--配置USB以USB转串口模式工作,用于print打印输出到PC串口终端
LIB_UsbConfig("CDC")
--配置电压比较器开始工作,参考电压=0.75Vdd,工作模式为Up
--即当A0引脚上电压升高到大于0.75倍的Vdd时,Lua会立即自动调用用户定义的LIB_CompCallBack()回调函数
LIB_CompConfig("0.75Vdd", "Up")
--开始大循环
while(GC(1) == true)
do
--do something
--可以在代码中调用LIB_CompCtrl("OPEN")或LIB_CompCtrl("CLOSE")随时开关比较器
end
如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。
四、演示结果
五、结语
本文章参考 FlexLua 官网 ,基于 FlexLua 脱离复杂单片机C开发正逐渐成为一种快速高效的 IoT 硬件开发方式。让小白即使不懂单片机开发也可很容易用FlexLua零门槛开发各种 IoT 硬件。
领取专属 10元无门槛券
私享最新 技术干货