找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 9352|回复: 10

基于电子积木arduino(AVR)的G代码解释器原代码

[复制链接]
发表于 2012-8-6 19:48:27 | 显示全部楼层 |阅读模式
基于电子积木arduino的G代码解释器原代码,来源于http://arduino.cc/forum/搜CNC
- _/ A: X9 _3 W4 O3 J我去年收集了许多程序,经过测试挑选出可以用,后来没时间继续研究学习,现在发
/ c" _& [( o; |0 E- [' V上来给有用的朋友参考& c$ q) Y  h; ^
下面是其中的小段源码) V- G& \9 v+ d  J4 u
//init our variables
/ A' ~6 q) G5 B$ n0 ^+ Hlong max_delta;8 h+ B2 ]0 o( J' t* P8 M' ?$ n) k
long x_counter;# r5 ]; B" J" J1 f+ l8 F
long y_counter;- P" c8 p/ F  l! Z8 V6 `7 k% ^
long z_counter;
% O. B+ i8 j- s' z" N+ Ybool x_can_step;
& k  o2 F1 c2 `( Q' w  abool y_can_step;) t; |& Q# P* k& f* U2 s! @
bool z_can_step;
5 n' B4 W( D+ gint milli_delay;! v8 o& ?: U" O# {( @
void init_steppers()- J* o7 [/ g8 f+ r2 a
{" i( S2 J; s# m$ w) S
//turn them off to start.
- C. }+ g" r( R' E9 q4 z disable_steppers();3 u! G2 R0 G7 _# U0 s! b" R
$ M5 }( E" S9 v5 {. I5 W
//init our points.
9 m" e; V0 s8 _8 Q: K6 U current_units.x = 0.0;% k" d" ]( o- x9 f3 M0 W2 J
current_units.y = 0.0;
6 J& s+ L, I. E7 y. f6 Z2 g current_units.z = 0.0;
) `6 }$ k+ O* G" L" f target_units.x = 0.0;
- P) H$ k4 q$ Q target_units.y = 0.0;' J4 I$ l4 Y  |/ n5 i. |/ C
target_units.z = 0.0;& n+ P5 {: x  _( q$ K5 z. i0 A7 d

" S. _7 X  o, ]8 n+ d4 x$ t6 v pinMode(X_STEP_PIN, OUTPUT);) C+ w( K9 w5 n  q" H+ f; s
pinMode(X_DIR_PIN, OUTPUT);# O/ b( O7 q6 v) |6 D
pinMode(X_ENABLE_PIN, OUTPUT);
  d5 T  U4 \- D, }; l- L4 m6 e pinMode(X_MIN_PIN, INPUT);$ {3 ?) r+ T. B' T0 F6 ~
pinMode(X_MAX_PIN, INPUT);9 j# B' g0 @; Y4 L% a
5 |7 I! z+ V: Z2 D& _
pinMode(Y_STEP_PIN, OUTPUT);
6 b% j, }" o" c: D7 g! i9 b pinMode(Y_DIR_PIN, OUTPUT);9 ^% N0 y4 c. @3 c; ?3 }2 |( a
pinMode(Y_ENABLE_PIN, OUTPUT);, W$ v* {, q* m, u7 H/ Z7 `
pinMode(Y_MIN_PIN, INPUT);
+ t+ M6 A9 C  p7 T2 G6 P. U: a2 g pinMode(Y_MAX_PIN, INPUT);) k$ Z" i9 k. ~- d& ^- o) c/ q% R
+ I% Y: A$ E3 t  i0 E; S. T. Q
pinMode(Z_STEP_PIN, OUTPUT);9 @4 Z0 ?# h+ b8 z& f2 Y
pinMode(Z_DIR_PIN, OUTPUT);
. @- t  w: @; k: {& ` pinMode(Z_ENABLE_PIN, OUTPUT);5 a6 g/ x6 O' P6 k
pinMode(Z_MIN_PIN, INPUT);
+ ?1 ?$ A7 e9 i pinMode(Z_MAX_PIN, INPUT);
! v1 \( b1 r0 y: s# J* G# b- N
' ?8 w7 {6 w+ e0 R* v1 v% \ //figure our stuff.
* }3 t) _, M- x( E3 c calculate_deltas();, J5 N% y6 F8 N5 ]. N: \
}- H% h* d, l& U% b( H
void dda_move(long micro_delay)
4 s- y! _9 F, l; |# _{
0 e1 t/ B8 ]! f$ P) B //enable our steppers9 ^0 @: S: W2 ?0 e; Q8 l7 G( M9 X- `) L
digitalWrite(X_ENABLE_PIN, HIGH);2 n, a( F4 B: d" U( z4 \# @
digitalWrite(Y_ENABLE_PIN, HIGH);  T; s* ]% H( l
digitalWrite(Z_ENABLE_PIN, HIGH);7 D3 g8 E3 j7 l+ i1 i
& F" P) x1 k/ i
//figure out our deltas
# d4 Y8 o) w; q3 G! y8 a max_delta = max(delta_steps.x, delta_steps.y);
0 _" L; M  {1 S8 N1 k% k2 T" r max_delta = max(delta_steps.z, max_delta);
8 ?9 I# \- {* C7 n //init stuff.
' r) Z3 X  C" O- {- ?2 m long x_counter = -max_delta/2;
2 x' H- r( w1 K/ O( z long y_counter = -max_delta/2;# A8 y, h6 D% {' g5 Q  h) d) x6 H
long z_counter = -max_delta/2;
; I+ ?0 O- r4 U6 B * o0 S1 n5 X9 P% Z9 `
//our step flags- c$ C7 r' u/ c5 _- q1 o) J/ @' ~
bool x_can_step = 0;$ _( _3 |- O; Z! p& r6 z+ }, R
bool y_can_step = 0;
0 B  e. v* n$ ^- ~( | bool z_can_step = 0;7 I) H8 F/ X: h+ p/ ~$ |. G( u# l
; b( y1 I/ J' y- f1 i
if (micro_delay >= 16383)
/ `* F0 |4 j4 O( X$ v  milli_delay = micro_delay / 1000;
- q$ ^! B. `# a0 H% Y* O8 ]5 i! n else7 k& O7 a& Z2 V1 b6 v+ F
  milli_delay = 0;, h1 _9 b: A6 B- [% z% B
& V- S8 b% I4 V# E

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
回复

使用道具 举报

 楼主| 发表于 2012-8-6 19:50:44 | 显示全部楼层
有2轴圆弧查补和3轴直线查补功能
发表于 2013-8-7 14:46:24 | 显示全部楼层
谢谢分享。
发表于 2013-8-25 00:01:13 | 显示全部楼层
谢谢分享。
发表于 2014-12-2 14:14:14 | 显示全部楼层
谢谢分享
发表于 2015-5-2 17:56:27 | 显示全部楼层
谢谢分享!
发表于 2015-5-5 10:06:23 | 显示全部楼层
感谢分享
发表于 2015-5-5 10:18:43 | 显示全部楼层
电子积木是什么意思?是CNC的G码吗?
发表于 2015-9-27 00:13:28 | 显示全部楼层
这个还没怎么接触过,楼主能详细解释解释吗
* r' U5 K4 i- @, B& V# {
发表于 2015-10-5 11:21:26 | 显示全部楼层
谢谢分享  
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-7-13 17:31 , Processed in 0.074642 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表