Grbl学习(1)--Grbl的框架(1)

  哈喽朋友们,欢迎来和我一起进行Grbl的学习✊

  笔者将首先Grbl的学习分为了两个模块,如下

  我们先来进行Grbl框架的学习

  对于Grbl框架来说,其最鲜明的特征就是自行封装,本文将围绕这一点进行分析学习

Grbl自行封装的原因

  Grbl并没有使用Arduino架构,最主要的原因有两点:资源限制和性能

1.Arduino的芯片atmega328p资源有限

2.Arduino框架的功能不能满足Grbl的需求 Arduino框架中的analogWrite()函数用于生成PWM(脉冲宽度调制)(脉冲宽度指的是一个脉冲在高电平状态持续的时间长度)信号,它可以控制模拟设备的功率。在Arduino Uno上,这个函数通常使用3个定时器(Timer 0、Timer 1和Timer 2)来实现,每个定时器控制特定的引脚。

  Timer 0 -> 5, 6    以980 Hz

  Timer 1 -> 9, 10    以490 Hz

  Timer 2 -> 3, 11    以980 Hz    的频率生成 PWM

  尽管可以通过分频器获得任意的频率,但Grbl需要精确和动态地控制步进电机,就需要可以控制加速度和减速度。这通常需要可变的PWM频率,而analogWrite()在Arduino Uno上提供的PWM频率是固定的,这限制了其在Grbl中的应用

3.Arduino框架占用了某些资源 Arduino框架的各个组件之间存在相互依赖,这意味着只用一部分功能,也得把大部分Arduino文件引入。把Arduino框架包含进来,再去实现CNC的功能,固件大小会超出Atmega328p的32KB限制

  于是Grbl的代码都是直接封装,通过操作寄存器来实现的,这样代码更灵活,性能好,编译出来的固件占用空间也会小一些

  以下是Grbl架构图,笔者将重要的部分进行了备注说明,下一篇将详细介绍Grbl关键部分的组成和功能

 

 

  以上便是本篇的全部内容啦!

  欢迎大家一起交流学习!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值