人妻暴雨中被强制侵犯在线,亚洲国产欧美日韩精品一区二区三区,四虎影免看黄,国产无人区二卡三卡四卡不见星空

機械社區(qū)

標題: 基于電子積木arduino(AVR)的G代碼解釋器原代碼 [打印本頁]

作者: xmdesign    時間: 2012-8-6 19:48
標題: 基于電子積木arduino(AVR)的G代碼解釋器原代碼
基于電子積木arduino的G代碼解釋器原代碼,來源于http://arduino.cc/forum/搜CNC
  P- C+ a" t7 f( C我去年收集了許多程序,經(jīng)過測試挑選出可以用,后來沒時間繼續(xù)研究學習,現(xiàn)在發(fā)
4 ?! H- D' E9 Z1 P* t7 w) m9 B% F2 q. u上來給有用的朋友參考# |2 A  L& L( r
下面是其中的小段源碼, i- c& o! X6 M/ q- K2 e/ w4 X: C
//init our variables
- J* \2 g3 T% {, r. u# v$ d  g: ~, ~long max_delta;  P3 p5 M% Y/ A- \2 m* C% W
long x_counter;$ b+ g5 p0 ?' u/ v
long y_counter;6 y* @5 p; ^+ |' O$ j5 i
long z_counter;* D6 f& q3 P0 Z/ Q. H6 I
bool x_can_step;
- a6 x6 G" P, |bool y_can_step;
  q! H6 u! a0 [5 e* r5 D' @bool z_can_step;/ H" b. V4 N0 c2 d, I7 I: B- L
int milli_delay;
: k" \' R$ Y5 b0 W5 vvoid init_steppers()8 @- m+ d7 O5 [- |( H( E
{
, x$ ~# G& o- C) M //turn them off to start.* }6 j( N: w. X+ u1 J
disable_steppers();
. M+ y, k* c# t# R: w 5 F* W. K/ Y: v0 x, Q7 j+ M0 @
//init our points.
7 L9 I: q$ r' F current_units.x = 0.0;9 M8 C/ N, _, d. a$ f2 p& ?" _% |
current_units.y = 0.0;
, ]6 u+ a: }2 Y current_units.z = 0.0;& |) _0 y4 v; k2 M: ~4 y& |" V! y
target_units.x = 0.0;
* y, Z$ g# T* t+ J% \( d target_units.y = 0.0;. X: h5 b+ l+ Y
target_units.z = 0.0;9 k5 X* j2 B& j+ V) N; Z

7 Z! I+ q8 t0 n5 Q* K6 f" ` pinMode(X_STEP_PIN, OUTPUT);! C  d1 y1 J5 J( X+ l# P  u. A
pinMode(X_DIR_PIN, OUTPUT);: u, _" u; f  t7 I
pinMode(X_ENABLE_PIN, OUTPUT);
: w- \' b8 V4 C( `4 k8 B. {* t pinMode(X_MIN_PIN, INPUT);$ i. B- P  _! M6 }) I) K: u. E
pinMode(X_MAX_PIN, INPUT);
$ F0 b4 a) c8 i: ~3 v( X 2 r6 T- D! ]/ s+ F3 Q
pinMode(Y_STEP_PIN, OUTPUT);. w: ^8 ]# C: }1 w
pinMode(Y_DIR_PIN, OUTPUT);, I+ U" W2 M! C! x. ]
pinMode(Y_ENABLE_PIN, OUTPUT);7 l4 F% @' C+ Q* m9 |1 w) Z
pinMode(Y_MIN_PIN, INPUT);
' ^  A) m' S9 K, n! \9 e pinMode(Y_MAX_PIN, INPUT);
2 U6 h% _7 U# j. H$ Q0 W * s+ D! _! s- Q; K- d% ^$ }
pinMode(Z_STEP_PIN, OUTPUT);
; a6 [1 h1 b* s" i& v# F' A pinMode(Z_DIR_PIN, OUTPUT);( w+ e1 _* U% O" T: y5 p+ m
pinMode(Z_ENABLE_PIN, OUTPUT);
3 T; |+ ?* X* f9 M% D pinMode(Z_MIN_PIN, INPUT);0 X/ t6 |3 K: ?" G6 M
pinMode(Z_MAX_PIN, INPUT);' p9 s# {6 `( |
( \1 R5 p& c& T2 d) ^0 {
//figure our stuff.
; [4 d, X" B: Q5 [' Y0 O& q calculate_deltas();
4 K) h  V- s/ R  V}  i! J0 s0 i' l
void dda_move(long micro_delay)
3 @9 }7 [1 D: c4 l( E2 o{
' [2 r/ j- g. T# n+ ~* |2 O4 |( k //enable our steppers- U+ k% ]7 y" n0 f, }* \5 L
digitalWrite(X_ENABLE_PIN, HIGH);
# G: R6 }( Z2 s# |7 u digitalWrite(Y_ENABLE_PIN, HIGH);; }  h0 e( J! S0 Z( s+ U% s
digitalWrite(Z_ENABLE_PIN, HIGH);
8 L, L6 R! i6 t 4 J( m  H9 E7 I6 |5 c
//figure out our deltas
2 l5 b' g1 j0 }* d) |0 D# D max_delta = max(delta_steps.x, delta_steps.y);
4 U' U- E  E% r" | max_delta = max(delta_steps.z, max_delta);
7 L; N5 \6 l% z3 x6 y //init stuff.
& E1 U) ?- h0 ? long x_counter = -max_delta/2;
7 i: T( w2 B% h- M3 Y long y_counter = -max_delta/2;
: }' ^+ h* d; h; x long z_counter = -max_delta/2;- ]  W7 S2 D% }  O

: w- ^: w7 k( Y' d //our step flags
! t% L$ N( j3 x- H4 m" ]7 j bool x_can_step = 0;
2 r* ^9 I3 W* [! w" m) d bool y_can_step = 0;
  a0 Q: K4 V, m3 i+ H6 `1 } bool z_can_step = 0;8 r: s- q* x+ F- P' v5 d

- }2 ]( ?8 h5 ]+ [4 D if (micro_delay >= 16383)
' m! M8 W$ x1 {5 X% y) |! `  milli_delay = micro_delay / 1000;
8 @0 Z4 r: W  g else$ ^& k  ]2 P, y) }' Y! Z& g) V1 _
  milli_delay = 0;( r3 o2 e, `1 u! P# A

. B& Y6 _2 v4 b5 }2 e9 N. D  u2 S
作者: xmdesign    時間: 2012-8-6 19:50
有2軸圓弧查補和3軸直線查補功能
作者: godbyw    時間: 2013-8-7 14:46
謝謝分享。
作者: cbcy    時間: 2013-8-25 00:01
謝謝分享。
作者: 兔子機械    時間: 2014-12-2 14:14
謝謝分享
作者: lkmdkl    時間: 2015-5-2 17:56
謝謝分享!
作者: yueame    時間: 2015-5-5 10:06
感謝分享
作者: 龍游大海    時間: 2015-5-5 10:18
電子積木是什么意思?是CNC的G碼嗎?
作者: lnxianzhi    時間: 2015-9-27 00:13
這個還沒怎么接觸過,樓主能詳細解釋解釋嗎
: _1 D3 W% K* W
作者: Kiss1212    時間: 2015-10-5 11:21
謝謝分享  
作者: 醉行者123    時間: 2016-1-19 18:07
不錯




歡迎光臨 機械社區(qū) (http://www.xa-space.com/) Powered by Discuz! X3.5