void settings_init() {
read_global_settings,
如果返回有错,进行处理:DEBUG输出,设置为默认初始化值,再一次DEBUG输出。
设置为默认值时,我们用到了write_global_settings,主要调用了
eeprom_put_char和memcpy_to_eeprom_with_checksum
这里EEPROM定义在EEPROMCNC.H中,此文件为GRBL定义的,我们进行移植的时候,直接从这里转移到我们实际使用的EEPROM中即可,我们的EEPROM定义在I2CEEPROM中。
在0地址写入参数为SETTINGS_VERSION
在接下来的地址中,写入的参数为settings的结构体,settings结构体为每个系统特殊的应用来决定,默认的值保存在defaults_h中,我们在第一篇解读中有详细介绍。
官网的配置参数介绍:
https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.8#grbls-xval-settings-and-what-they-mean
我的解读笔记: https://www.jianshu.com/p/73193ddec6e2
这个是系统和单片机中算法的桥梁,一定要注意配置好。
全局配置读取以后,如果版本号是我们设置的版本,#define SETTINGS_VERSION 5
则从EEPROM中读取memcpy_from_eeprom_with_checksum结构体settings
然后开始读主轴的数据,并存放在coord_data中。
关于EEPROM的移植:
GRBL调用的函数名称为eeprom_get_char,如果用到我们定义的新文件,先把新文件的头文件包括进来#include "I2CEEPROM.h"
在eeprom_get_char的函数本体中,只用一条return TWI_ReadByte( addr)进行跳转。
而memcpy_to_eeprom_with_checksum函数则调用eeprom_get_char,所以不需要修改。
我们用的芯片是24C128,在I2CEEPROM.H中,有如此的宏定义:
#define ADDR_24CXX 0xA0
#define SCLH GPIOB->BSRR = GPIO_Pin_6
#define SCLL GPIOB->BRR = GPIO_Pin_6
#define SDAH GPIOB->BSRR = GPIO_Pin_7
#define SDAL GPIOB->BRR = GPIO_Pin_7
#define SCLread GPIOB->IDR &GPIO_Pin_6
#define SDAread GPIOB->IDR &GPIO_Pin_7
#define W_ENANLE GPIO_WriteBit(GPIOB, GPIO_Pin_5, (BitAction)0x00)
#define W_DISANLE GPIO_WriteBit(GPIOB, GPIO_Pin_5, (BitAction)0x01)
UG后处理出来的NC程序就是通过UG的后处理器产生出来的,UG的后处理器主要由三个文件组成,.pui,.def,.tcl,UG后处理程序时最直接用到的是.def和.tcl这两个文件,这些文件可以使用拷贝复制的方法获得,也可以从无到有利用UG软件自带的后处理构造器生成制作出来打开文泰:双击这个图标输入宽和高
这里的宽和高仅是在屏幕上体现一个外框,作为参考线,并非画幅的实际大小
读入bmp图片,这里要用读入,而不是打开
先点击右边的选择箭头按钮,然后选中这个图片,选中后图片周围会出现红色虚线,可以通过鼠标拖动和拉伸来调节图片的位置和大小
打开菜单选择“图像转换”,一路点击“是”或者“下一步”,直到“完成”。
转换以后会出现两个重叠的图层,选中实心的这一层(原来的bmp图片层)。把它删除,留下空心的图层
有两种画法可以选择,一种填充色块的画法。一种是勾勒线条的画法。如图
先说填充色块的画法:选中剩下的空心的图层(选中的会出现红虚线边框),点击“2D”按钮,进行二维路径计算,d出刀具设置窗口,刀具可以自己创造和更改参数,一般选直刀,可以给刀具取个名称,然后点“确认”。
刀具的宽度值意味着填充图案的色块密度,如果填充的绿线不够密,或者太密了,可以重新按“2D”按钮改变刀具的宽度来调节
再说勾勒线条的画法:选择“割”按钮,再选原线输出,确认
生成nc文件之前,先要进行画面位置的布局,也就是定义好坐标零点(原点),原点决定了图案在实际绘画中输出的位置。这里定义的原点与实际绘画时的零点是重合的,如果定位在图片的上边线中点,绘画时图片就会对称的位于零点的下方,鼠标定位后,会询问是否归并到特殊点,选择“否”
选择这个按钮,开始生成nc文件,
可以为它选择存放位置和起名,注意后缀是".nc" 最后点确认,nc文件就生成好了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)