久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱

機械社區(qū)

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

作者: xmdesign    時間: 2012-8-6 19:48
標題: 基于電子積木arduino(AVR)的G代碼解釋器原代碼
基于電子積木arduino的G代碼解釋器原代碼,來源于http://arduino.cc/forum/搜CNC
( e/ W9 S, k! e0 Y! I3 y  T0 L我去年收集了許多程序,經(jīng)過測試挑選出可以用,后來沒時間繼續(xù)研究學習,現(xiàn)在發(fā)6 G% r5 [, Q' g- ~/ H
上來給有用的朋友參考
# U9 s. i, G% d5 ^下面是其中的小段源碼6 ]9 A* n8 h: ^6 X; ~# {9 \
//init our variables
$ O: N% @' S, plong max_delta;
( {& {% o/ S7 G1 F% W4 v" S4 |long x_counter;
* _( @& t4 I1 o. Y  i( Y# o% Along y_counter;, ?* f+ s3 Q) X7 [, {+ p
long z_counter;
  S/ G5 C! w2 E; dbool x_can_step;
4 Y& H5 j3 K: `% `bool y_can_step;$ W  l8 b) u( L+ r* A
bool z_can_step;% F; @# _9 R: @- ?
int milli_delay;/ n$ ]' `0 c, t
void init_steppers()  q8 H# _, p& I: ^( b
{
  c8 n: U) ^" o/ @* I& Q8 w  p" t //turn them off to start.
; c  G/ ^5 x9 T0 o' U" q disable_steppers();
& J  r" K9 Y8 u9 q4 D% U1 s7 H, H
  j5 U" a1 `& `' E' U //init our points.
$ X# p. t! f) K# k. ^ current_units.x = 0.0;
, n4 r  g9 v1 c  N* o6 T$ N+ M current_units.y = 0.0;  z: w" }" y5 t* C6 I3 O
current_units.z = 0.0;% s; K& c% M) _! i$ W% E
target_units.x = 0.0;
4 l% {  D  D6 W% [9 {: ^ target_units.y = 0.0;
  E& A6 y1 I: B target_units.z = 0.0;
) B" a6 K3 F5 q$ W" _
( r$ j, z( K" I9 f+ g; _6 ?: f  K' g pinMode(X_STEP_PIN, OUTPUT);
" C+ u# X( V% u+ r0 A& K0 g pinMode(X_DIR_PIN, OUTPUT);
( K+ @3 z+ i5 F1 S. c, u) a pinMode(X_ENABLE_PIN, OUTPUT);4 d* }8 Y+ e, R8 k  {# ?$ w
pinMode(X_MIN_PIN, INPUT);" K( U! C; L/ m4 c. D% M. Z" e
pinMode(X_MAX_PIN, INPUT);
1 W; R8 Z8 m* A2 w" p( Y; G
/ B% i, T: m" V  F4 A) Q' g* S pinMode(Y_STEP_PIN, OUTPUT);
$ c9 s) O' V9 u pinMode(Y_DIR_PIN, OUTPUT);
1 t. u/ A, a2 e" B+ O6 x3 ~ pinMode(Y_ENABLE_PIN, OUTPUT);# m5 L7 r+ x% M* j, V/ s/ S% j, `
pinMode(Y_MIN_PIN, INPUT);; h: g& K/ m; {$ ^5 m
pinMode(Y_MAX_PIN, INPUT);
7 J9 d" }1 A# _  g  s
% ^- n( q2 X5 C4 G, p/ f! e+ O; D pinMode(Z_STEP_PIN, OUTPUT);
0 b, Q- C( V, t  l* M: [  D8 H& j% } pinMode(Z_DIR_PIN, OUTPUT);. D. x& j" u& k0 s' }
pinMode(Z_ENABLE_PIN, OUTPUT);
$ z2 A9 j5 h. H9 I; g! T; r/ y pinMode(Z_MIN_PIN, INPUT);
$ L  E% R; x7 {5 m$ e pinMode(Z_MAX_PIN, INPUT);$ Z7 U! X1 u0 _3 \

" D( g) L+ W. ]. l8 X" F  ` //figure our stuff.- n6 v7 O- I7 [: U
calculate_deltas();
+ R/ s/ @: H1 l- ^& b}# B0 {! K6 ^7 D; P
void dda_move(long micro_delay)! j2 M, J2 G* U1 ]
{
5 P  v8 ~5 o5 K8 x/ z7 B4 x7 N //enable our steppers' r: T  u; E8 w) u; {) M
digitalWrite(X_ENABLE_PIN, HIGH);
& U9 V4 N3 [- W( ~8 x  q digitalWrite(Y_ENABLE_PIN, HIGH);5 ^1 G( T  K8 k. c, C2 q
digitalWrite(Z_ENABLE_PIN, HIGH);
- D& f: @1 p* J' c) Y4 O# {  B0 ? ' @: e" S) M, _- Z' }0 p
//figure out our deltas& G8 a8 k. N) [# C/ q3 b
max_delta = max(delta_steps.x, delta_steps.y);2 R+ `" F8 |: z7 Z9 s! ^0 Q9 F
max_delta = max(delta_steps.z, max_delta);
3 F/ P/ }2 ]3 w) B  g6 z* ^ //init stuff.
9 i! E2 T: k: {7 m- }  l1 W# o long x_counter = -max_delta/2;
1 o3 ?9 D1 _/ y2 M1 u+ N long y_counter = -max_delta/2;7 @+ r- R; \9 H! u# H# ~5 Z
long z_counter = -max_delta/2;4 d/ c' \9 j" x# V5 p
& |: `- K8 C! ~( m
//our step flags, k' c$ b5 i: @4 {) C$ q. G& _
bool x_can_step = 0;
5 P  G" A8 {0 K* } bool y_can_step = 0;
4 }$ r: k/ U9 y6 M bool z_can_step = 0;
+ c& Z8 M2 ]* T: N
  y$ Y0 k% U' H- i* |5 |6 {' u9 s if (micro_delay >= 16383): m( I* k/ J. X' O- a
  milli_delay = micro_delay / 1000;
% T* H  D2 b/ J: [ else
" _9 l8 B. o8 v, e  milli_delay = 0;5 ~$ _# M! [2 {6 E- d
9 x6 L: m0 r& T  _; M6 F

作者: 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
這個還沒怎么接觸過,樓主能詳細解釋解釋嗎3 S. x4 F& M4 h6 a$ ~+ B

作者: Kiss1212    時間: 2015-10-5 11:21
謝謝分享  
作者: 醉行者123    時間: 2016-1-19 18:07
不錯




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