:“作业1-罗宏利-2018G05050251” :“向调度器添加任务ida和idb,利用串口调试助手输入数据,以回车\r作为指令接收,处理周期及占空比” 这个作业涉及的是使用Arduino UNO3开发板进行数字信号的生成,主要知识点包括: 1. **任务调度框架**: - 使用了TaskScheduler库,这是一个用于管理多任务的库,可以定期执行不同的任务。 - 调度器初始化:`Sch.init()`,用于初始化任务调度器。 - 添加任务:`ida= Sch.addTask(led1Update,0,t,1)`和`idb= Sch.addTask(led2Update,dc,t,1)`,分别添加了两个任务ida和idb,用于控制LED灯的状态,任务执行间隔分别为t毫秒和dc毫秒。 2. **LED灯闪烁模拟**: - 利用Arduino UNO3的13号引脚,通过改变该引脚的电平状态(高电平和低电平)来模拟LED灯的闪烁。 - 任务`led1Update`和`led2Update`分别用于设置引脚为高电平和低电平,以达到LED灯闪烁的效果。 3. **串口通信**: - 使用Arduino IDE中的Serial库初始化串口通信,`Serial.begin(9600)`设置波特率为9600。 - 通过串口调试助手输入数据,以回车符`\r`作为接收指令的分隔符。 - 数据处理:检测输入的字节,通过if判断和switch语句将输入的字符串转化为数值,以改变周期T和占空比dc。 4. **数据处理逻辑**: - 当接收到以"T="或"dc="开头的数据时,分别处理周期和占空比。 - 通过从特定位置读取字节并转换,计算出实际的周期和占空比值,然后更新任务执行的参数。 5. **程序优化建议**: - 设计更完善的用户界面,允许用户直接输入周期和占空比值,提高交互性。 - 引入错误检测机制,当用户输入格式不正确或超出范围时,给出警告提示。 6. **代码结构**: - 主程序中包含TaskScheduler库,并定义了LED状态变量、串口缓冲区、任务ID等。 - 在`setup()`函数中初始化硬件和任务调度器,`loop()`函数中调用调度器执行任务。 - `serialEvent()`函数用于处理串口接收到的数据。 通过这个作业,学习者能够掌握如何使用Arduino进行多任务调度,以及如何通过串口通信动态调整硬件的运行参数。同时,也了解到在实际项目中对错误处理和用户交互设计的重要性。
- 粉丝: 35
- 资源: 318
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Python和HTML的Chinese-estate-helper房地产爬虫及可视化设计源码
- 基于SpringBoot2.7.7的当当书城Java后端设计源码
- 基于Python和Go语言的开发工具集成与验证设计源码
- 基于Python与JavaScript的国内供应商管理系统设计源码
- aspose.words-20.12-jdk17
- 基于czsc库的Python时间序列分析设计源码
- 基于Java、CSS、JavaScript、HTML的跨语言智联平台设计源码
- 基于Java语言的day2设计源码学习与优化实践
- 基于浙江大学2024年秋冬学期软件安全原理与实践的C与Python混合语言设计源码
- 基于FastAPI和Vue3的表单填写与提交前后端一体化设计源码
评论0