国产精品乱码一区-性开放网站-少妇又紧又爽视频-西西大胆午夜人体视频-国产极品一区-欧美成人tv-四虎av在线-国产无遮挡无码视频免费软件-中文字幕亚洲乱码熟女一区二区-日产精品一区二区三区在线观看-亚洲国产亚综合在线区-五月婷婷综合色-亚洲日本视频在线观看-97精品人人妻人人-久久久久久一区二区三区四区别墅-www.免费av-波多野结衣绝顶大高潮-日本在线a一区视频高清视频-强美女免费网站在线视频-亚洲永久免费

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 9581|回復: 10

基于電子積木arduino(AVR)的G代碼解釋器原代碼

  [復制鏈接]
1#
發表于 2012-8-6 19:48:27 | 只看該作者 |倒序瀏覽 |閱讀模式
基于電子積木arduino的G代碼解釋器原代碼,來源于http://arduino.cc/forum/搜CNC
* H7 C/ l( w: _0 f& o我去年收集了許多程序,經過測試挑選出可以用,后來沒時間繼續研究學習,現在發
* k% [$ \7 g2 z+ T, C上來給有用的朋友參考
# L2 R2 y( s; p$ a1 S$ u下面是其中的小段源碼7 G( F7 U& y. T: n; \; S
//init our variables
8 }( E+ E( `3 s" Z$ a9 qlong max_delta;
! O9 I* W3 M. b. ~, \8 Along x_counter;
/ J& P7 z" ?& B1 Clong y_counter;$ s# O8 j; u9 X5 [. b
long z_counter;
: Z- U, P9 o5 K2 X+ X( x) o- Z+ Hbool x_can_step;
0 h7 W. n4 w- e4 L5 W4 bbool y_can_step;6 L9 H( |  d5 h# w: [
bool z_can_step;  T. o/ C' W+ L* W: x
int milli_delay;3 k" ?! _0 A- Y& V' X# c
void init_steppers(): L0 E6 W$ n5 B* V- L5 Y
{
6 a0 h# B" L: t% h //turn them off to start.
2 t4 F% V+ C4 J$ \  ]' g& g/ j  W disable_steppers();  ~! Z1 j) n2 S7 n  Z
& V* H  m. B( r( W
//init our points.
) _6 v+ _& U0 j+ b8 R current_units.x = 0.0;. e0 m# w, N+ D7 ~
current_units.y = 0.0;% Q* t8 R9 J2 w
current_units.z = 0.0;
8 ^  U) G) k  _8 g1 N% a target_units.x = 0.0;
7 E# Q8 V" A: P  {8 I4 U/ b4 C0 x target_units.y = 0.0;
5 T/ l; I( k5 K6 q8 t" e/ c' r, n2 ` target_units.z = 0.0;
/ J# w3 R  m! b0 v! T. w! u ; F  t3 o  Y, j$ S+ S
pinMode(X_STEP_PIN, OUTPUT);
" J! U2 i( A0 J1 ^ pinMode(X_DIR_PIN, OUTPUT);+ K. o% p4 J; z' L% G: }" Y: x
pinMode(X_ENABLE_PIN, OUTPUT);
! f2 T1 Y6 z3 P0 ?' c7 j pinMode(X_MIN_PIN, INPUT);
+ c% t5 i+ o6 c' x0 Q1 O% L pinMode(X_MAX_PIN, INPUT);
8 L3 |/ P: f% P* ]" F+ m) p# | - t# F7 t& L. C; {+ _' T* s4 Y
pinMode(Y_STEP_PIN, OUTPUT);
5 k& A3 k& u6 x7 ?; h. M% V: J7 C pinMode(Y_DIR_PIN, OUTPUT);/ {; p, k# ?" ]2 c8 F, B, @0 j
pinMode(Y_ENABLE_PIN, OUTPUT);6 z! q+ b3 O: A( q! q; b
pinMode(Y_MIN_PIN, INPUT);. R$ s2 I' h& t" L1 K
pinMode(Y_MAX_PIN, INPUT);4 _+ l$ W9 {' ]3 D. Z
% s9 e. Z4 q: |( I! R/ V3 l/ |/ d
pinMode(Z_STEP_PIN, OUTPUT);8 v( T' F" x! X& B8 G
pinMode(Z_DIR_PIN, OUTPUT);2 I6 B3 j$ `( w3 ^
pinMode(Z_ENABLE_PIN, OUTPUT);0 w" `% D/ \( y, G: k# X
pinMode(Z_MIN_PIN, INPUT);1 p2 L" i4 X" K4 \5 V  ~+ j: ?
pinMode(Z_MAX_PIN, INPUT);
4 e0 H. ~: W% c4 Q! I* c $ G4 ^% o6 G4 n
//figure our stuff.
- h5 a7 J- H; T calculate_deltas();
/ f& j; d3 o9 S2 E5 ~}+ E# N4 t! ^$ O# D- g
void dda_move(long micro_delay)
# X, }. I8 ]( W3 h{. y6 ~* E! i% h1 p5 k: L& Q
//enable our steppers. \1 f! R8 Y5 G& ~% V, X$ a
digitalWrite(X_ENABLE_PIN, HIGH);6 E& {2 N3 D- I* @0 P! M( [6 e" l
digitalWrite(Y_ENABLE_PIN, HIGH);
- Z) R) Z& I, \* z( l digitalWrite(Z_ENABLE_PIN, HIGH);
. B$ n6 e9 [% P
1 I; i% s8 C4 D: l1 B4 h# F  r //figure out our deltas9 j& k, I0 o/ F
max_delta = max(delta_steps.x, delta_steps.y);8 K0 |% j/ H! W/ X" a# A' N1 K
max_delta = max(delta_steps.z, max_delta);/ x3 V3 u  O2 q2 \* h2 w
//init stuff.9 M- O- g8 K/ F1 ^( O8 B' i+ J
long x_counter = -max_delta/2;
8 {2 @  g1 t7 Z5 z long y_counter = -max_delta/2;2 k' ~% x1 n. J* E; g
long z_counter = -max_delta/2;) o8 e/ x. @1 `- e/ Q
5 H9 |) U1 J5 U2 n- Q! P1 g  X. ?- ]
//our step flags
3 X& U& G. ~3 b' G" ~, j: E; b- w# | bool x_can_step = 0;
$ W& T! B. Q  r' k% P bool y_can_step = 0;
" g4 u& I5 }9 h6 I bool z_can_step = 0;
- Z2 b- ?; I6 r  C5 N
' N8 B1 ]* O' E if (micro_delay >= 16383)
* C$ k) [& }/ d+ r/ ?  milli_delay = micro_delay / 1000;
2 c; g2 M: u0 s! [ else+ F  k9 ]  j, e# w8 q. ~5 H2 C
  milli_delay = 0;
7 K" d3 J! L4 v0 w9 N. M1 _
) \: G: ~3 m+ M. M& H5 C& H/ T( u

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?注冊會員

×
回復

使用道具 舉報

2#
 樓主| 發表于 2012-8-6 19:50:44 | 只看該作者
有2軸圓弧查補和3軸直線查補功能
3#
發表于 2013-8-7 14:46:24 | 只看該作者
謝謝分享。
4#
發表于 2013-8-25 00:01:13 | 只看該作者
謝謝分享。
5#
發表于 2014-12-2 14:14:14 | 只看該作者
謝謝分享
6#
發表于 2015-5-2 17:56:27 | 只看該作者
謝謝分享!
7#
發表于 2015-5-5 10:06:23 | 只看該作者
感謝分享
8#
發表于 2015-5-5 10:18:43 | 只看該作者
電子積木是什么意思?是CNC的G碼嗎?
9#
發表于 2015-9-27 00:13:28 | 只看該作者
這個還沒怎么接觸過,樓主能詳細解釋解釋嗎5 ?! U# G/ ^- ?
10#
發表于 2015-10-5 11:21:26 | 只看該作者
謝謝分享  
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規則

Archiver|手機版|小黑屋|機械社區 ( 京ICP備10217105號-1,京ICP證050210號,浙公網安備33038202004372號 )

GMT+8, 2025-9-22 05:53 , Processed in 0.065151 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表