浏览代码

🔧 Improve SD_DETECT_STATE default (#21885)

Scott Lahteine 4 年前
父节点
当前提交
69473daa3d
没有帐户链接到提交者的电子邮件
共有 3 个文件被更改,包括 22 次插入15 次删除
  1. 10
    13
      Marlin/src/inc/Conditionals_post.h
  2. 7
    0
      Marlin/src/inc/SanityCheck.h
  3. 5
    2
      Marlin/src/pins/stm32f4/pins_BTT_OCTOPUS_V1_0.h

+ 10
- 13
Marlin/src/inc/Conditionals_post.h 查看文件

330
  */
330
  */
331
 #if ENABLED(SDSUPPORT)
331
 #if ENABLED(SDSUPPORT)
332
 
332
 
333
-  // Extender cable doesn't support SD_DETECT_PIN
334
-  #if ENABLED(NO_SD_DETECT)
335
-    #undef SD_DETECT_PIN
336
-  #endif
337
-
338
   #if HAS_SD_HOST_DRIVE && SD_CONNECTION_IS(ONBOARD)
333
   #if HAS_SD_HOST_DRIVE && SD_CONNECTION_IS(ONBOARD)
339
     //
334
     //
340
     // The external SD card is not used. Hardware SPI is used to access the card.
335
     // The external SD card is not used. Hardware SPI is used to access the card.
345
     #define HAS_SHARED_MEDIA 1
340
     #define HAS_SHARED_MEDIA 1
346
   #endif
341
   #endif
347
 
342
 
348
-  #if PIN_EXISTS(SD_DETECT)
349
-    #if HAS_LCD_MENU && (SD_CONNECTION_IS(LCD) || !defined(SDCARD_CONNECTION))
350
-      #undef SD_DETECT_STATE
351
-      #if ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
352
-        #define SD_DETECT_STATE HIGH
353
-      #endif
354
-    #endif
355
-    #ifndef SD_DETECT_STATE
343
+  // Set SD_DETECT_STATE based on hardware if not overridden
344
+  #if PIN_EXISTS(SD_DETECT) && !defined(SD_DETECT_STATE)
345
+    #if BOTH(HAS_LCD_MENU, ELB_FULL_GRAPHIC_CONTROLLER) && (SD_CONNECTION_IS(LCD) || !defined(SDCARD_CONNECTION))
346
+      #define SD_DETECT_STATE HIGH
347
+    #else
356
       #define SD_DETECT_STATE LOW
348
       #define SD_DETECT_STATE LOW
357
     #endif
349
     #endif
358
   #endif
350
   #endif
359
 
351
 
352
+  // Extender cable doesn't support SD_DETECT_PIN
353
+  #if ENABLED(NO_SD_DETECT)
354
+    #undef SD_DETECT_PIN
355
+  #endif
356
+
360
   #if DISABLED(USB_FLASH_DRIVE_SUPPORT) || BOTH(MULTI_VOLUME, VOLUME_SD_ONBOARD)
357
   #if DISABLED(USB_FLASH_DRIVE_SUPPORT) || BOTH(MULTI_VOLUME, VOLUME_SD_ONBOARD)
361
     #if ENABLED(SDIO_SUPPORT)
358
     #if ENABLED(SDIO_SUPPORT)
362
       #define NEED_SD2CARD_SDIO 1
359
       #define NEED_SD2CARD_SDIO 1

+ 7
- 0
Marlin/src/inc/SanityCheck.h 查看文件

761
 #endif
761
 #endif
762
 
762
 
763
 /**
763
 /**
764
+ * SD Card Settings
765
+ */
766
+#if ALL(SDSUPPORT, ELB_FULL_GRAPHIC_CONTROLLER, HAS_LCD_MENU) && PIN_EXISTS(SD_DETECT) && SD_DETECT_STATE != HIGH && (SD_CONNECTION_IS(LCD) || !defined(SDCARD_CONNECTION))
767
+  #error "SD_DETECT_STATE must be set HIGH for SD on the ELB_FULL_GRAPHIC_CONTROLLER."
768
+#endif
769
+
770
+/**
764
  * SD File Sorting
771
  * SD File Sorting
765
  */
772
  */
766
 #if ENABLED(SDCARD_SORT_ALPHA)
773
 #if ENABLED(SDCARD_SORT_ALPHA)

+ 5
- 2
Marlin/src/pins/stm32f4/pins_BTT_OCTOPUS_V1_0.h 查看文件

349
 //
349
 //
350
 #if SD_CONNECTION_IS(ONBOARD)
350
 #if SD_CONNECTION_IS(ONBOARD)
351
   #define SDIO_SUPPORT                            // Use SDIO for onboard SD
351
   #define SDIO_SUPPORT                            // Use SDIO for onboard SD
352
-  #undef SD_DETECT_STATE
353
-  #define SD_DETECT_STATE                   HIGH
352
+  #ifndef SD_DETECT_STATE
353
+    #define SD_DETECT_STATE HIGH
354
+  #elif SD_DETECT_STATE == LOW
355
+    #error "BOARD_BTT_OCTOPUS_V1_0 onboard SD requires SD_DETECT_STATE set to HIGH."
356
+  #endif
354
   #define SD_DETECT_PIN                     PC14
357
   #define SD_DETECT_PIN                     PC14
355
 #elif SD_CONNECTION_IS(LCD)
358
 #elif SD_CONNECTION_IS(LCD)
356
 
359
 

正在加载...
取消
保存