国产精品乱码一区-性开放网站-少妇又紧又爽视频-西西大胆午夜人体视频-国产极品一区-欧美成人tv-四虎av在线-国产无遮挡无码视频免费软件-中文字幕亚洲乱码熟女一区二区-日产精品一区二区三区在线观看-亚洲国产亚综合在线区-五月婷婷综合色-亚洲日本视频在线观看-97精品人人妻人人-久久久久久一区二区三区四区别墅-www.免费av-波多野结衣绝顶大高潮-日本在线a一区视频高清视频-强美女免费网站在线视频-亚洲永久免费
機械社區(qū)
標題:
基于電子積木arduino(AVR)的G代碼解釋器原代碼
[打印本頁]
作者:
xmdesign
時間:
2012-8-6 19:48
標題:
基于電子積木arduino(AVR)的G代碼解釋器原代碼
基于電子積木arduino的G代碼解釋器原代碼,來源于http://arduino.cc/forum/搜CNC
. _1 q; a( |! a6 O) o u
我去年收集了許多程序,經(jīng)過測試挑選出可以用,后來沒時間繼續(xù)研究學習,現(xiàn)在發(fā)
% U3 a) z2 K H4 R& B7 s
上來給有用的朋友參考
! |2 _& c8 _6 ^4 z4 Z+ ]: ]& R, s# q
下面是其中的小段源碼
+ s8 g ] T& \! e' K- k
//init our variables
6 N& f3 R" ^. z* ^. P+ y, @
long max_delta;
1 R* v/ E/ m' K9 b+ w7 f
long x_counter;
- Q Z1 O6 G) g$ Y
long y_counter;
* Z. v; N- F' f. F" n0 Z* u1 d
long z_counter;
3 _* a+ f! f3 y2 l2 h- M
bool x_can_step;
- G0 T) w* G* w! @0 T& l" U
bool y_can_step;
: G+ c2 g$ k) @6 c8 d- b% ~6 X
bool z_can_step;
' N N. e' q" a
int milli_delay;
% `2 c6 j6 f; f& X8 A
void init_steppers()
: m2 W5 j( g7 @# ~9 G8 I R o
{
6 n4 n- b; S) s, x5 v* r
//turn them off to start.
# F0 ?# F# x3 Q7 z, {2 N; x
disable_steppers();
7 L$ c! D" q* e, P; k" o P7 U
6 N$ D6 L6 \" z4 ]1 B5 C
//init our points.
, V* j I. q1 G4 o1 x
current_units.x = 0.0;
( y' ~. p L" ?5 N, E
current_units.y = 0.0;
6 [0 V4 h- }1 {- Q! i9 C6 ^! @5 O
current_units.z = 0.0;
2 T9 J5 v5 O O8 } q
target_units.x = 0.0;
4 D5 B [$ X" [' E, Q [5 I
target_units.y = 0.0;
" s; y0 Z; c6 E, L. w- x7 {' B. T
target_units.z = 0.0;
7 ^/ S( c% s$ H1 E( Y
+ N& P, ?' I' @
pinMode(X_STEP_PIN, OUTPUT);
! [( y8 _% b: K }
pinMode(X_DIR_PIN, OUTPUT);
. W! p+ F( }$ Y1 m
pinMode(X_ENABLE_PIN, OUTPUT);
: h7 g- _, e A: v# p4 ]
pinMode(X_MIN_PIN, INPUT);
! h" O& n1 o7 C
pinMode(X_MAX_PIN, INPUT);
6 | x8 L' m: Z0 }: f
: E, w7 F+ V7 Q% h% a0 K5 m
pinMode(Y_STEP_PIN, OUTPUT);
; Q7 y3 A" g0 p0 U4 r: x
pinMode(Y_DIR_PIN, OUTPUT);
6 o5 t- t0 A3 x9 p0 a5 W
pinMode(Y_ENABLE_PIN, OUTPUT);
r8 C2 u3 X! k
pinMode(Y_MIN_PIN, INPUT);
8 b1 D. q1 w9 G6 Z
pinMode(Y_MAX_PIN, INPUT);
2 o) g9 [+ f; u. y
. o8 J8 e7 t2 N2 }5 n
pinMode(Z_STEP_PIN, OUTPUT);
$ z* [5 ^1 N2 \8 s2 ~
pinMode(Z_DIR_PIN, OUTPUT);
, h+ F' i0 x" _2 g0 O& [8 |
pinMode(Z_ENABLE_PIN, OUTPUT);
) J) O$ ?' f2 e8 F
pinMode(Z_MIN_PIN, INPUT);
) N9 K9 q4 Z7 w8 W
pinMode(Z_MAX_PIN, INPUT);
- \- B* n8 F3 \, C8 Z: D# U: c- l
6 W* Z6 Y1 F8 n5 ^ m/ Z2 K7 r& C
//figure our stuff.
1 H) |) I8 z* w; U
calculate_deltas();
( B A: l* _# o, {, g+ F/ f
}
& F) I% B8 A& e, d
void dda_move(long micro_delay)
4 i: q, h( _' { }7 D% T- R" @) o% i
{
" E* M. Q4 O/ l7 W8 c& V }2 ~
//enable our steppers
: @& ^7 [7 k( l( V Y: e
digitalWrite(X_ENABLE_PIN, HIGH);
- J" B6 s( l5 I+ y- c
digitalWrite(Y_ENABLE_PIN, HIGH);
5 L5 S9 I( Y/ S0 e- h2 k9 Y7 E
digitalWrite(Z_ENABLE_PIN, HIGH);
; {0 @& ?0 B+ D$ {; b# _) L
1 z& |7 l9 g( C9 @7 x6 K$ D
//figure out our deltas
9 d6 L4 v1 h, j; \- p v1 I
max_delta = max(delta_steps.x, delta_steps.y);
* U) G2 c* e7 q# y4 z
max_delta = max(delta_steps.z, max_delta);
* R" i5 `) L% g* ~3 W# s' ]
//init stuff.
) A0 x: O* q8 m8 R* i; e) w
long x_counter = -max_delta/2;
6 |# c6 g2 R' c8 v! a8 i4 }5 A8 `
long y_counter = -max_delta/2;
/ {/ d* c4 O4 z O6 i$ o
long z_counter = -max_delta/2;
( l: i5 x4 s0 s" h" C
& U5 I `- H# L6 I
//our step flags
! P1 t; u$ X. O0 ~( m: E
bool x_can_step = 0;
. e s4 @! B8 S/ x* g$ h o
bool y_can_step = 0;
/ ?+ X& Q% {& {6 l ]
bool z_can_step = 0;
$ m4 ~7 }5 H$ h: l
$ ?/ b8 K3 o, I" P9 ~& p; U
if (micro_delay >= 16383)
- p$ ?6 f9 N" a3 S+ J
milli_delay = micro_delay / 1000;
$ U" ^$ P: K4 X: P$ }
else
# E5 y% L1 P- `2 q
milli_delay = 0;
- h) P$ D5 P2 i
3 k( n7 n6 D- C( v- h. ?2 L
作者:
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
這個還沒怎么接觸過,樓主能詳細解釋解釋嗎
8 Z5 B4 {- Z8 z T3 G
作者:
Kiss1212
時間:
2015-10-5 11:21
謝謝分享
作者:
醉行者123
時間:
2016-1-19 18:07
不錯
歡迎光臨 機械社區(qū) (http://m.whclglass.com.cn/)
Powered by Discuz! X3.5