亚洲天堂高清一二三,久久久久久久久久性生活,精品国产污污免费网站AⅤ,色橹橹欧美在线观看视频高清

如何添加或定制自己的特殊G代碼命令 

2016-12-23 19:34
Marlin二次開發(fā).jpg

Marlin固件具有很強(qiáng)大的功能,支持非常多G代碼命令(參考:http://reprap.org/wiki/Gcode )。但很多朋友還是有特殊定制的需求,在這里簡單寫一個(gè)例子來說明一下如何添加或修改自己定制的G代碼命令。
所有的G代碼列表在Marlin_main.cpp文件中。
所有的相關(guān)代碼都在process_commands這個(gè)函數(shù)里面。G開頭的(G1、G2、G3等)及M開頭的(M0、M1等)是分開的,所以一定要注意區(qū)分。
我這里以一個(gè)簡單例子做說明,是@wanhaixin 提出的,執(zhí)行M03的時(shí)候,接通一個(gè)繼電器,執(zhí)行M05的時(shí)候,關(guān)閉這個(gè)繼電器。
首先因?yàn)槭荕命令,所以應(yīng)該將代碼添加在M代碼部分。為了方便查找,按照原順序進(jìn)行添加會更好,比如M3應(yīng)該放在M2和M4之間。
添加代碼是一定要注意#if、#endif這樣的宏命令。
  1. #ifdef ULTIPANEL
  2.     case 0: // M0 - Unconditional stop - Wait for user button press on LCD
  3.     case 1: // M1 - Conditional stop - Wait for user button press on LCD
  4.     {
  5.       LCD_MESSAGEPGM(MSG_USERWAIT);
  6.       codenum = 0;
  7.       if(code_seen('P')) codenum = code_value(); // milliseconds to wait
  8.       if(code_seen('S')) codenum = code_value() * 1000; // seconds to wait

  9.       st_synchronize();
  10.       previous_millis_cmd = millis();
  11.       if (codenum > 0){
  12.         codenum += millis();  // keep track of when we started waiting
  13.         while(millis()  < codenum && !lcd_clicked()){
  14.           manage_heater();
  15.           manage_inactivity();
  16.           lcd_update();
  17.         }
  18.       }else{
  19.         while(!lcd_clicked()){
  20.           manage_heater();
  21.           manage_inactivity();
  22.           lcd_update();
  23.         }
  24.       }
  25.       LCD_MESSAGEPGM(MSG_RESUMING);
  26.     }
  27.     break;
  28. #endif

  29. //需要添加的代碼應(yīng)該放在這個(gè)位置
  30.    case 3:
  31.        digitalWrite(Pin,High);//Pin指你打算用于控制繼電器的接口(arduino Pin編號)。如果跟其它管腳沖突,可能需要配置Pins.h文件中相關(guān)管腳為-1.
  32.        break;
  33.    case 5:
  34.        digitalWrite(Pin,LOW);
  35.        break;

  36. //定制添加代碼結(jié)束

  37.     case 17:
  38.         LCD_MESSAGEPGM(MSG_NO_MOVE);
復(fù)制代碼
添加代碼后,就可以通過發(fā)送M3和M5來分別拉高(5V)和拉低(0V)相應(yīng)的IO口,從而實(shí)現(xiàn)對繼電器的控制了。
修改代碼的話跟添加差不多,只是找到相應(yīng)代碼段進(jìn)行修改就好了。
聲明:3D打印資源庫(3dzyk)內(nèi)網(wǎng)友所發(fā)表的所有內(nèi)容及言論僅代表其本人,并不代表3D打印資源庫(3dzyk)觀點(diǎn)和立場;如對文章有異議或投訴,請联系kefu@3dzyk.cn。
B Color Smilies
如何添加或定制自己的特殊G代碼命令 
利津县| 朝阳县| 杭锦旗| 江都市| 泗洪县| 淮阳县| 麻城市| 利津县| 佳木斯市| 珲春市| 安国市| 吉隆县| 泰安市| 略阳县| 于都县| 房山区| 寿宁县| 龙门县| 托克托县| 安化县| 西乌| 江北区| 永登县| 双江| 溆浦县| 岳池县| 扎兰屯市| 蚌埠市| 揭阳市| 巴林右旗| 岢岚县| 博野县| 鹤峰县| 蓬安县| 柳州市| 建湖县| 九台市| 宜君县| 师宗县| 宜良县| 嘉禾县|