查看“第二十课--Microduino 中断的使用”的源代码
←
第二十课--Microduino 中断的使用
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{| style="width: 800px;" |- | ==目的== 本教程为了了解microduino定时器中断,用定时器中断让13引脚 led灯每500ms变化一次 ==设备== '''[[Microduino-Core]]''' '''[[Microduino-FT232R]]''' *其他硬件设备 **面包板跳线 一盒 **面包板 一块 **LED发光二极管 一个 **220欧姆电阻 一个 **USB数据连接线 一根 ==实验一== ===使用MsTimer2库=== *MsTimer2库下载地址:'''[[File:MsTimer2.zip]]''' *示例程序: <source lang="cpp"> // led灯接UNO的13管脚 #include <MsTimer2.h> //定时器库的 头文件 void flash() //中断处理函数,改变灯的状态 { static boolean output = HIGH; digitalWrite(13, output); output = !output; } void setup() { pinMode(13, OUTPUT); MsTimer2::set(500, flash); // 中断设置函数,每 500ms 进入一次中断 MsTimer2::start(); //开始计时 } void loop() { } </source> ===结果=== led灯每500ms变化一次。 ==实验二== ===使用millis()函数=== *示例程序 <source lang="cpp"> unsigned long ledOn=500,ledOff=500; //定义led灯变化的时间长度,每500ms变化一次 int ledStatus; //定义LED灯的状态,HIGH or LOWm void setup() { pinMode(13,OUTPUT); digitalWrite(13,HIGH); ledStatus=HIGH; } void loop() { unsigned long nowtime=millis(); //获取当前的系统运行时间长度 if(ledStatus==HIGH) //如果当前lled灯状态为高电平,则执行该程序 { if(nowtime>ledOn) //检测系统运行时间长度是否到500ms { ledOn=nowtime; //记录当前时间长度,第一次为500ms,赋值给ledOn ledOff=nowtime+500; //计算出下一次led灯变化的时刻,第一次运行程序时应该在1000ms时关灯 digitalWrite(13,LOW); //关掉led灯 ledStatus=LOW; //记录当前led灯状态,下一次使用 } } else{ if(nowtime>ledOff) { ledOff=nowtime; ledOn=nowtime+500; digitalWrite(13,HIGH); ledStatus=HIGH; } } } </source> ===结果=== *使用mills()函数也能让led灯每500ms变化一次。 *利用mills()函数同样可以实现中断的功能。mills()函数功能是获取系统运行的时间长度,单位ms。最大为9小时22分,如果超出时间将从0开始。函数的返回值为unsigned long型。 *玩家可根据实际情况使用mills()函数,使用mills()函数的好处在于占用的整个程序运行时间短,如果用用延时函数,在延时的时间内,CPU不能干别的事儿。 |}
该页面使用的模板:
模板:Language
(
查看源代码
)
模板:Nmbox
(
查看源代码
)
返回至
第二十课--Microduino 中断的使用
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息