机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 9138|回复: 10

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

[复制链接]
发表于 2012-8-6 19:48:27 | 显示全部楼层 |阅读模式
基于电子积木arduino的G代码解释器原代码,来源于http://arduino.cc/forum/搜CNC& W1 s& h8 G- ~" g' |3 {+ y2 G
我去年收集了许多程序,经过测试挑选出可以用,后来没时间继续研究学习,现在发
: [2 q' L& E' X! Z4 C7 l上来给有用的朋友参考
0 ~# ]# s, G, K) N4 v; {下面是其中的小段源码
; O# K; q- z- K3 K//init our variables' u/ h" G  A- C" V+ T4 R6 l
long max_delta;
6 V/ M% T- ^, z$ l& l- d! Glong x_counter;! j- |5 ^" p3 D  ]7 [& T2 u+ I9 @
long y_counter;: V/ V2 t  s* z& g
long z_counter;' Y/ w  ~- D5 w) X, R
bool x_can_step;
  g# `7 u  r* x# G6 d/ ~bool y_can_step;
( ]) [: o  _& @8 |# Z; b& Q% {bool z_can_step;. O$ j6 _/ W1 Y# ^- C7 D  {
int milli_delay;
& k" X/ j: V4 y4 S$ X& Cvoid init_steppers()
9 R0 Q+ h, ^4 P" k7 S6 u+ O{
( `" x' v' ]+ {) ~% s# W //turn them off to start.
) M4 R" L9 F, ~' H- E( @0 F1 \ disable_steppers();
. q6 y; }5 l( C, {1 n! G1 Z  p % x, m  |* f+ i8 H% V, {8 ]7 G: A
//init our points.) T- d# I8 d! J: t# E6 O
current_units.x = 0.0;
/ N8 y" o' G1 T+ z current_units.y = 0.0;$ _0 }0 f7 d% M. ~, v$ S3 n% t
current_units.z = 0.0;
0 }9 O* {: A, t0 P6 v target_units.x = 0.0;- T% ?% T) D+ s
target_units.y = 0.0;1 n& k7 Q6 J! q
target_units.z = 0.0;
2 @& T' q% {4 B: C+ m, l4 D0 ]
8 r: V9 @; B/ y. d6 O pinMode(X_STEP_PIN, OUTPUT);
& _$ T: i( D; a& \. N$ A$ ]( \ pinMode(X_DIR_PIN, OUTPUT);- r# W8 ^  u/ P2 W4 e% y. W
pinMode(X_ENABLE_PIN, OUTPUT);3 B+ {6 P$ q; m2 z+ s; Q$ M
pinMode(X_MIN_PIN, INPUT);
2 C+ [" H9 C  p- S0 ~2 v pinMode(X_MAX_PIN, INPUT);
5 h5 t4 w# R  g& L
: @9 F) h& i& ~* ~& S8 n7 e& C pinMode(Y_STEP_PIN, OUTPUT);9 h' v3 C+ R; F4 S. Z1 {
pinMode(Y_DIR_PIN, OUTPUT);3 i: O5 U' k2 H& w! t% V
pinMode(Y_ENABLE_PIN, OUTPUT);$ f6 U! s. `, s- k: N% }, R/ S4 c" _
pinMode(Y_MIN_PIN, INPUT);
9 \+ z6 s' E( } pinMode(Y_MAX_PIN, INPUT);
; c% x" \( D/ c; w% U : G& s' r& ^% p
pinMode(Z_STEP_PIN, OUTPUT);( t/ O2 E5 T. U% ^2 I, n" v% u
pinMode(Z_DIR_PIN, OUTPUT);' t% ]* B* s* g
pinMode(Z_ENABLE_PIN, OUTPUT);0 a. E0 f+ b' l2 H
pinMode(Z_MIN_PIN, INPUT);
" r! D0 p4 P1 j. U' o. b pinMode(Z_MAX_PIN, INPUT);- Z. [0 K0 N+ p& P$ E

; o; p& d- j, p* h' | //figure our stuff.9 [! n) P2 `) U/ J* z
calculate_deltas();
4 |3 f/ ~! a# R& f) G; W3 O}
1 @3 w9 r; t# i! H" {void dda_move(long micro_delay)3 d/ O1 M, v2 i& w7 h2 `1 ^  E
{
" L7 z# z2 Z7 J* s8 h6 m$ X- V //enable our steppers
8 f5 s) D: `0 J  R3 @) A" H+ ]/ L digitalWrite(X_ENABLE_PIN, HIGH);; d" p5 r0 L" G( L+ M0 J3 `9 M' f
digitalWrite(Y_ENABLE_PIN, HIGH);
) o/ m+ j( J2 L2 d8 G8 q5 x digitalWrite(Z_ENABLE_PIN, HIGH);6 }, ?: Z9 ]1 g, z1 v
, P& F# S6 x8 u5 r! w6 g
//figure out our deltas
7 I% N1 d3 ~3 _ max_delta = max(delta_steps.x, delta_steps.y);% p, P; y* p2 z) H, ?5 w8 J, D6 n/ W
max_delta = max(delta_steps.z, max_delta);- }6 G+ t, A- e3 ~7 O- X8 ^
//init stuff.
8 k8 v0 m( x9 \7 l' Y long x_counter = -max_delta/2;
  T/ b% h/ O5 M1 M; i long y_counter = -max_delta/2;
9 D7 Y& n6 Y+ [2 t! \9 H long z_counter = -max_delta/2;
& Y( j" f! w, I+ _5 e 9 K  w" f* Z1 ~; o+ ?7 E
//our step flags
+ a: M3 u2 B! `, l, ]  w bool x_can_step = 0;
" g% u1 I& e9 `9 ?* k- a; F bool y_can_step = 0;6 G- u" f1 L& J
bool z_can_step = 0;
( S( q5 ?  Q. j8 C; i 3 {; q! C- U$ _6 q+ J
if (micro_delay >= 16383)
$ Y1 J% t; b4 {" r7 k; M* v' H4 D  milli_delay = micro_delay / 1000;/ \- f6 ~5 @2 p6 q
else
: M  i' F& |% T6 O1 q2 E  milli_delay = 0;
) P: D: h5 [+ l  g( `; Q8 r1 U5 R1 u+ j

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 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 | 显示全部楼层
这个还没怎么接触过,楼主能详细解释解释吗+ @) V* t7 N1 U# R) w
回复 支持 反对

使用道具 举报

发表于 2015-10-5 11:21:26 | 显示全部楼层
谢谢分享  
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-5-7 22:25 , Processed in 0.081521 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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