以下为《计算机控制及接口技术实验报告》的无排版文字预览,完整内容请下载
浙江理工大学
计算机控制及接口技术实验报告
/
姓名:汪某某
学号:***5262
老师:李某某
机械与自动***
目 录
1.设计要求 1
2.设计思路 1
3.硬件电路搭建 2
3.1LED灯闪烁 3
3.2播放指定音乐 3
3.3设定频率以及占空比可改变的方某某 3
4.程序编写及调试 3
4.1程序代码 3
4.2程序 6
4.2.1对要求(1)进行调整 6
4.2.2对要求(2)与(3)进行调整 12
5.结论 14
1.设计要求
给定一个Arduino板(或其他单芯片实验板,开发板等),编写一个程序来实现:
(1)时间触发,时间分段的多任务管理器,具有添加任务,调度任务,执行任务,状态查询和记录等功能接口;
(2)可以在指定的IO端口发送指定的频率和占空比方某某,并且可以调整频率和占空比;
(3)方某某的周期和占空比可以通过串行端口与上位机通讯,随时设置。
2.设计思路
本设计使用Arduino开发板的主控制芯片。根据设计要求(1),描述了时间触发和时间片周期的多任务管理器。该程序的主要功能是Arduino的Mstimer2库功能。 MsTimer2函数可以定期运行该函数,周期时间可以是毫秒。 MsTimer2库函数具有三个主要句子:
(1)MsTimer2::set(some_ms your_function);
它的功能是设置时间和要执行的功能,如前一句话所述,每隔几毫秒执行一次。此设置符合设计要求(1)中所述的基于时间的触发器。
(2)MsTimer2 :: start();
它的作用是:启动MsTimer2中断,即开始(1)中的正常操作。
(3)MsTimer2::stop();
停止后,可以使用MsTimer2 :: start()重新启动设置功能。如果中断中断停止,则设置的功能将不会定期运行。
在Mstimer2库函数中,可以将一个函数设置为定期执行,因此,如果将一个函数扩展为多个函数,则可以实现设计要求(1)中所述的时间片旋转。因此,在MsTimer2 :: set(some_ms,your_function)的your_function中添加三个函数,例如
Void your_function(){
A();
B();
C();
}
以此便可实现3个函数的不断循环运行。
根据设计要求(1),实现了任务添加,任务调度,任务执行,状态查询和日志等功能接口。在“添加任务”屏幕上,如果使用“软件添加”,则将要执行的任务功能添加到书面的\ u函数中。如果是硬件添加,则可以添加按钮以增加任务,根据执行时间片将2个任务增加到3个任务;在任务计划界面中,还可以添加按钮来打开和关闭任务,以便它可以退出时间片轮搜索;在任务执行中,使用MsTimer2库功能,如1中所述。在状态查询中,LED灯用于实时显示任务状态。例如,当任务正在运行时,对应于任务1的LED状态灯将相应地点亮。当任务停止时,LED状态指示灯和相应的指示灯将同时熄灭,以告诉实验者实时在时间表轮上执行哪些任务。记录功能界面使用串口输出,运行的任务将“ task1”,“ task2”输出到PC,并显示在串行监视器上。
根据设计要求(2)和(3),设置占空比和可调方某某。您可以通过串行端口将占空比和频率数据信息发送到Arduino开发板。这次发送的数据为XXPwMYY,其中“ XX”代表占空比,占空比为XX%。 “ YY”代表周期,方某某周期为(YY * 10)微秒;方某某的占空比和频率由延迟函数delayMicroseconds()设置。
3.硬件电路 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 本硬件电路中的电机采用直流电机,无法获得其准确的转速,因此本次调试采用“00PWM90”和“90PWM90”两个极端字段进行调试,分别表示“占空比为0,周期为900微秒”和“占空比为90%,周期为900微秒”。当输入“00PWM90”时,电机停止转动,其他任务不受影响,如图4-9所示。/
图4-9 发送“00PWM90”
输入“90PWM90”时,电机开始转动,其他任务同时不受影响,如图4-10与4-11所示。
/
图4-10 发送“90PWM90”
/
图4-11 电机转动且任务一运行
5.结论
本次经过仿真以及实物调试,符合设计要求,且硬件电路经过多次实验,鲁棒性较强,符合预期设计。
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]
以上为《计算机控制及接口技术实验报告》的无排版文字预览,完整内容请下载
计算机控制及接口技术实验报告由用户“wmk000000”分享发布,转载请注明出处