人妻暴雨中被强制侵犯在线,亚洲国产欧美日韩精品一区二区三区,四虎影免看黄,国产无人区二卡三卡四卡不见星空
機械社區(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 v
void 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