stepper.cpp

Marlin v 1.0.0


重要変数

//===========================================================================
//=============================public variables ============================
//===========================================================================

block_t *current_block; // A pointer to the block currently being traced

checkHitEndstops() エンドストップにヒットしたかチェックする処理

処理関数 概要 コメント
SERIAL_ECHOPGM()
SERIAL_ECHOPAIR()
LCD_MESSAGEPGM()
SERIAL_ECHOLN()
endstops_hit_on_purpose() XYZのエンドストップを未検出に設定処理
card.closefile()
quickStop() 緊急停止処理
setTargetHotend0() temperature.h
setTargetHotend1() temperature.h
setTargetHotend2() temperature.h

endstops_hit_on_purpose() XYZのエンドストップを未検出に設定処理

 XYZのエンドストップを未検出に設定する。


enable_endstops() エンドストップ状態指定処理

 引数に従った状態にエンドストップ検出状態を変更する。


st_wake_up() ステッピングモーターの活性処理

 割り込み動作を有効にする。


step_wait() ステップ待ち処理

 6回空ループする。CPUの動作クロック等に依存するだろう。


calc_timer() タイマー値計算処理

処理関数 概要 コメント
MultiU16X8toH16() planner.ccp
pgm_read_word_near() 指定したアドレス(PROGMEM領域)に格納されているデータを2バイト読み取るためのマクロ Arduino
MYSERIAL.print()
MYSERIAL.println()

trapezoid_generator_reset()


ISR(TIMER1_COMPA_vect)

 割り込みベクター登録

処理関数 概要 コメント
plan_get_current_block() planner.h
trapezoid_generator_reset()
enable_z()
WRITE() fastio.h
REV_E_DIR() stepper.h
NORM_E_DIR() stepper.h
Serial.checkRx()
WRITE_E_STEP() stepper.h
MultiU24X24toH16() planner.ccp

st_init() ステッピングモーター初期化処理

 ステッピングモーター(X,Y,Z,Z2,E0,E1,E2)の初期化をする。
 ここでは、Z軸のデュアル化として個別ドライブが想定されている。

処理関数 概要 コメント
digipot_init()
microstep_init()
SET_OUTPUT() fastio.h
WRITE() fastio.h
SET_INPUT() fastio.h
disable_x() X軸停止処理 Marin.h
disable_y() Y軸停止処理 Marin.h
disable_z() Z軸停止処理 Marin.h
disable_e0() E0軸停止処理 Marin.h
disable_e1() E1軸停止処理 Marin.h
disable_e2() E2軸停止処理 Marin.h
enable_endstops() エンドストップ状態指定処理
sei() 割り込みを許可するアセンブラ命令を実行するマクロ Arduino

st_synchronize() ステッピングモーター同期処理

 ステッピングモーターの動作ブロック待ちがなくなるまでの動作完了待ち。

処理関数 概要 コメント
blocks_queued() planner.h
manage_heater() ヒーター管理処理
manage_inactivity() 不活性状態管理処理
lcd_update() 表示の更新処理

st_set_position() ステッピングモーターのポジション指定処理

 引数で指定された値に、X,Y,X,Eのステッピングモーターの位置を指定する。


st_set_e_position() エクストルーダステッピングモーターのポジション指定処理

 引数で指定された値に、エクストルーダ(E)のステッピングモーターの位置を指定する。


st_get_position() ステッピングモーターのポジション取得処理

 引数で指定されたステッピングモーターのポジションを返す。


finishAndDisableSteppers()

 残動作を完了し、ステッピングモータ全て(X,Y,Z,E0,E1,E2)を非制御状態にする。

処理関数 概要 コメント
st_synchronize() ステッピングモーター同期処理
disable_x() X軸停止処理 Marin.h
disable_y() Y軸停止処理 Marin.h
disable_z() Z軸停止処理 Marin.h
disable_e0() E0軸停止処理 Marin.h
disable_e1() E1軸停止処理 Marin.h
disable_e2() E2軸停止処理 Marin.h

quickStop() 緊急停止処理

 ステッピングモータの割り込み処理を停止し、カレント操作した後、割り込みを復帰させる。

処理関数 概要 コメント
plan_discard_current_block() planner.h

digitalPotWrite() From Arduino DigitalPotControl example

処理関数 概要 コメント
digitalWrite() HIGHまたはLOWを、指定したピンに出力 Arduino
SPI.transfer()

digipot_init() Initialize Digipot Motor Current DIGIPOT初期化処理

処理関数 概要 コメント
SPI.begin()
pinMode() ピンの動作を入力か出力に設定 Arduino
digipot_current() DIGIPOTカレント設定処理

digipot_current() DIGIPOTカレント設定処理

digitalPotWrite() From Arduino DigitalPotControl example


microstep_init() マイクロステップ初期化処理

 X,Y,Z,E0,E1のマイクロステップ制御ピンを出力に変え、デフォルトのマイクロステップモードに初期化する。エクストルーダは2個までしか考えてないようだ。

処理関数 概要 コメント
pinMode() ピンの動作を入力か出力に設定 Arduino
microstep_mode() マイクロステップモード設定処理

microstep_ms() マイクロステップMS設定処理

 指定のステッピングモーターに指定のMS1とMS2の設定を行う。対象はX,Y,Z,E0,E1でエクストルーダは2個までしか考えてないようだ。

処理関数 概要 コメント
digitalWrite() HIGHまたはLOWを、指定したピンに出力 Arduino

microstep_mode() マイクロステップモード設定処理

 ステッピングモータのマイクロステップ動作の設定を行う。

処理関数 概要 コメント
microstep_ms() マイクロステップMS設定処理

microstep_readings() マイクロステップ状態読み取り処理

 表示系にMS1,MS2 PinsとしてX,Y,Z,E0,E1の設定状態を表示する。エクストルーダは2個までしか考えてないようだ。

処理関数 概要 コメント
SERIAL_PROTOCOLPGM()
SERIAL_PROTOCOL()
SERIAL_PROTOCOLLN()