Pin default untuk X-MIN adalah 37, dan ketika saya mengunggah firmware, pesan kesalahan muncul ... Haruskah saya mengubah definisi pin endstop, atau menonaktifkan fitur interupsi endstop?
In file included from sketch\Marlin_main.cpp:320:0:
sketch\endstop_interrupts.h: In function 'void setup_endstop_interrupts()':
endstop_interrupts.h:128: error: static assertion failed: X_MIN_PIN is not interrupt-capable
static_assert(digitalPinToPCICR(X_MIN_PIN) != NULL, "X_MIN_PIN is not interrupt-capable");
^
endstop_interrupts.h:148: error: static assertion failed: Y_MIN_PIN is not interrupt-capable
static_assert(digitalPinToPCICR(Y_MIN_PIN) != NULL, "Y_MIN_PIN is not interrupt-capable");
^
endstop_interrupts.h:168: error: static assertion failed: Z_MIN_PIN is not interrupt-capable
static_assert(digitalPinToPCICR(Z_MIN_PIN) != NULL, "Z_MIN_PIN is not interrupt-capable");
^
exit status 1
static assertion failed: X_MIN_PIN is not interrupt-capable
Saya telah menghabiskan nol waktu untuk menggali dan mencari fakta. Tetapi hanya beberapa pin GPIO pada AVR yang dapat diatur untuk memberikan interupsi. Dugaan saya, X_MIN_PIN Anda secara sewenang-wenang dipasang pada pin yang tidak pernah terputus oleh desainer papan. (Saya tidak tahu itu fakta .... Tapi itu adalah posisi awal saya.)
Dari perspektif yang berlawanan. Papan RAMPS memiliki setiap penghenti ujung, baik Min dan Max memasang pin yang dapat terganggu.
Anda dapat mengaktifkan PINS_DEBUGGING
dan kemudian mengirim M43
untuk mendapatkan daftar lengkap semua pin dan apa kemampuannya. Jika Anda memiliki cukup pin berkemampuan interupsi yang tidak terpakai, Anda mungkin dapat memindahkan endstop ke pin tersebut.
Maaf atas balasannya terlambat, papan yang saya gunakan adalah papan MKS Rumba +, dan mereka menyatakan memiliki sirkuit perlindungan untuk pin endstop.
PIN: 0 Port: E0 RXD protected
PIN: 1 Port: E1 TXD protected
PIN: 2 Port: E4 HEATER_0_PIN protected
PIN: 3 Port: E5 <unused/unknown> Input = 0 TIMER3C PWM: 0 WGM: 1 COM3C: 0 CS: 3 TCCR3A: 1 TCCR3B: 3 TIMSK3: 0
PIN: 4 Port: G5 SPINDLE_LASER_PWM_PIN Input = 0 TIMER0B PWM: 128 WGM: 3 COM0B: 0 CS: 3 TCCR0A: 3 TCCR0B: 3 TIMSK0: 5 compare interrupt enabled overflow interrupt enabled
PIN: 5 Port: E3 SERVO0_PIN Input = 0 TIMER3A PWM: 0 WGM: 1 COM3A: 0 CS: 3 TCCR3A: 1 TCCR3B: 3 TIMSK3: 0
PIN: 6 Port: H3 HEATER_BED_PIN protected
PIN: 7 Port: H4 FAN_PIN protected
PIN: 8 Port: H5 E0_AUTO_FAN_PIN protected
. FAN1_PIN protected
. HEATER_3_PIN protected
PIN: 9 Port: H6 HEATER_2_PIN Output = 0 TIMER2B PWM: 0 WGM: 1 COM2B: 0 CS: 4 TCCR2A: 1 TCCR2B: 4 TIMSK2: 0
PIN: 10 Port: B4 <unused/unknown> Input = 0 TIMER2A PWM: 0 WGM: 1 COM2A: 0 CS: 4 TCCR2A: 1 TCCR2B: 4 TIMSK2: 0
PIN: 11 Port: B5 BTN_EN1 Input = 1 TIMER1A PWM: 2000 WGM: 4 COM1A: 0 CS: 2 TCCR1A: 0 TCCR1B: 10 TIMSK1: 2 non-standard PWM mode compare interrupt enabled
PIN: 12 Port: B6 BTN_EN2 Input = 1 TIMER1B PWM: 0 WGM: 4 COM1B: 0 CS: 2 TCCR1A: 0 TCCR1B: 10 TIMSK1: 2 non-standard PWM mode
PIN: 13 Port: B7 LED_PIN Input = 0 TIMER0A PWM: 0 WGM: 3 COM0A: 0 CS: 3 TCCR0A: 3 TCCR0B: 3 TIMSK0: 5 overflow interrupt enabled
. TIMER1C is also tied to this pin TIMER1C PWM: 0 WGM: 4 COM1C: 0 CS: 2 TCCR1A: 0 TCCR1B: 10 TIMSK1: 2 non-standard PWM mode
PIN: 14 Port: J1 SPINDLE_LASER_ENABLE_PIN Input = 0
PIN: 15 Port: J0 SPINDLE_DIR_PIN Input = 0
PIN: 16 Port: H1 X_DIR_PIN protected
PIN: 17 Port: H0 X_STEP_PIN protected
PIN: 18 Port: D3 LCD_PINS_D4 Output = 1
PIN: 19 Port: D2 LCD_PINS_RS Output = 0
PIN: 20 Port: D1 SDA Input = 1
PIN: 21 Port: D0 SCL Input = 1
PIN: 22 Port: A0 E0_DIR_PIN protected
PIN: 23 Port: A1 E0_STEP_PIN protected
PIN: 24 Port: A2 E0_ENABLE_PIN protected
PIN: 25 Port: A3 E1_DIR_PIN Output = 0
PIN: 26 Port: A4 E1_STEP_PIN Output = 0
PIN: 27 Port: A5 E1_ENABLE_PIN Output = 1
PIN: 28 Port: A6 E2_DIR_PIN Output = 0
PIN: 29 Port: A7 E2_STEP_PIN Output = 0
PIN: 30 Port: C7 <unused/unknown> Input = 0
PIN: 31 Port: C6 <unused/unknown> Input = 0
PIN: 32 Port: C5 <unused/unknown> Input = 1
PIN: 33 Port: C4 Z_MIN_PIN protected
PIN: 34 Port: C3 <unused/unknown> Input = 1
PIN: 35 Port: C2 Y_MIN_PIN protected
PIN: 36 Port: C1 <unused/unknown> Input = 1
PIN: 37 Port: C0 X_MIN_PIN protected
PIN: 38 Port: D7 LCD_PINS_D5 Input = 0
PIN: 39 Port: G2 E2_ENABLE_PIN Output = 1
PIN: 40 Port: G1 LCD_PINS_D7 Input = 0
PIN: 41 Port: G0 LCD_PINS_D6 Input = 0
PIN: 42 Port: L7 LCD_PINS_ENABLE Output = 0
PIN: 43 Port: L6 BTN_ENC Input = 1
PIN: 44 Port: L5 BEEPER_PIN Output = 0 TIMER5C PWM: 0 WGM: 1 COM5C: 0 CS: 3 TCCR5A: 1 TCCR5B: 3 TIMSK5: 0
PIN: 45 Port: L4 CASE_LIGHT_PIN protected
. PS_ON_PIN protected
PIN: 46 Port: L3 KILL_PIN Input = 1 TIMER5A PWM: 0 WGM: 1 COM5A: 0 CS: 3 TCCR5A: 1 TCCR5B: 3 TIMSK5: 0
PIN: 47 Port: L2 Y_DIR_PIN protected
PIN: 48 Port: L1 X_ENABLE_PIN protected
PIN: 49 Port: L0 SD_DETECT_PIN Input = 0
PIN: 50 Port: B3 AVR_MISO_PIN Input = 1
. MISO_PIN Input = 1
PIN: 51 Port: B2 AVR_MOSI_PIN Output = 1
. MOSI_PIN Output = 1
PIN: 52 Port: B1 AVR_SCK_PIN Output = 0
. SCK_PIN Output = 0
PIN: 53 Port: B0 AVR_SS_PIN Output = 1
. SDSS Output = 1
. SS_PIN Output = 1
PIN: 54 Port: F0 (A 0) Y_STEP_PIN protected
PIN: 55 Port: F1 (A 1) Y_ENABLE_PIN protected
PIN: 56 Port: F2 (A 2) Z_DIR_PIN protected
PIN: 57 Port: F3 (A 3) Z_STEP_PIN protected
PIN: 58 Port: F4 (A 4) <unused/unknown> Analog in = 447 Input = 0
PIN: 59 Port: F5 (A 5) <unused/unknown> Analog in = 383 Input = 0
PIN: 60 Port: F6 (A 6) <unused/unknown> Analog in = 343 Input = 0
PIN: 61 Port: F7 (A 7) <unused/unknown> Analog in = 490 Input = 0
PIN: 62 Port: K0 (A 8) Z_ENABLE_PIN protected
PIN: 63 Port: K1 (A 9) <unused/unknown> Analog in = 556 Input = 1
PIN: 64 Port: K2 (A10) <unused/unknown> Analog in = 745 Input = 1
PIN: 65 Port: K3 (A11) TEMP_BED_PIN protected
PIN: 66 Port: K4 (A12) <unused/unknown> Analog in = 1023 Input = 1
PIN: 67 Port: K5 (A13) TEMP_2_PIN Analog in = 1023
PIN: 68 Port: K6 (A14) TEMP_1_PIN Analog in = 1023
PIN: 69 Port: K7 (A15) TEMP_0_PIN
Di M43
label "dilindungi" berarti pin dilindungi dari perubahan oleh Marlin.
Komentar yang paling membantu
Anda dapat mengaktifkan
PINS_DEBUGGING
dan kemudian mengirimM43
untuk mendapatkan daftar lengkap semua pin dan apa kemampuannya. Jika Anda memiliki cukup pin berkemampuan interupsi yang tidak terpakai, Anda mungkin dapat memindahkan endstop ke pin tersebut.