Add support for Arduino DUE Shield Kit (#12950)

This commit is contained in:
lanserge
2019-01-20 05:43:32 +00:00
committed by Scott Lahteine
parent 4e5a915ef8
commit c2cf8ffa82
4 changed files with 247 additions and 6 deletions

View File

@ -930,16 +930,46 @@ void MarlinUI::update() {
uint8_t ADCKeyNo;
} _stADCKeypadTable_;
#ifndef ADC_BUTTONS_VALUE_SCALE
#define ADC_BUTTONS_VALUE_SCALE 1.0 // for the power voltage equal to the reference voltage
#endif
#ifndef ADC_BUTTONS_R_PULLUP
#define ADC_BUTTONS_R_PULLUP 4.7 // common pull-up resistor in the voltage divider
#endif
#ifndef ADC_BUTTONS_LEFT_R_PULLDOWN
#define ADC_BUTTONS_LEFT_R_PULLDOWN 0.47 // pull-down resistor for LEFT button voltage divider
#endif
#ifndef ADC_BUTTONS_RIGHT_R_PULLDOWN
#define ADC_BUTTONS_RIGHT_R_PULLDOWN 4.7 // pull-down resistor for RIGHT button voltage divider
#endif
#ifndef ADC_BUTTONS_UP_R_PULLDOWN
#define ADC_BUTTONS_UP_R_PULLDOWN 1.0 // pull-down resistor for UP button voltage divider
#endif
#ifndef ADC_BUTTONS_DOWN_R_PULLDOWN
#define ADC_BUTTONS_DOWN_R_PULLDOWN 10.0 // pull-down resistor for DOWN button voltage divider
#endif
#ifndef ADC_BUTTONS_MIDDLE_R_PULLDOWN
#define ADC_BUTTONS_MIDDLE_R_PULLDOWN 2.2 // pull-down resistor for MIDDLE button voltage divider
#endif
// Calculate the ADC value for the voltage divider with specified pull-down resistor value
#define ADC_BUTTON_VALUE(r) (int(4096.0 * (ADC_BUTTONS_VALUE_SCALE) * r / (r + ADC_BUTTONS_R_PULLUP)))
static const _stADCKeypadTable_ stADCKeyTable[] PROGMEM = {
// VALUE_MIN, VALUE_MAX, KEY
{ 4000, 4096, 1 + BLEN_KEYPAD_F1 }, // F1
{ 4000, 4096, 1 + BLEN_KEYPAD_F2 }, // F2
{ 4000, 4096, 1 + BLEN_KEYPAD_F3 }, // F3
{ 300, 500, 1 + BLEN_KEYPAD_LEFT }, // LEFT
{ 1900, 2200, 1 + BLEN_KEYPAD_RIGHT }, // RIGHT
{ 570, 870, 1 + BLEN_KEYPAD_UP }, // UP
{ 2670, 2870, 1 + BLEN_KEYPAD_DOWN }, // DOWN
{ 1150, 1450, 1 + BLEN_KEYPAD_MIDDLE }, // ENTER
{ ADC_BUTTON_VALUE(ADC_BUTTONS_LEFT_R_PULLDOWN) - 100,
ADC_BUTTON_VALUE(ADC_BUTTONS_LEFT_R_PULLDOWN) + 100, 1 + BLEN_KEYPAD_LEFT }, // LEFT ( 272 ... 472)
{ ADC_BUTTON_VALUE(ADC_BUTTONS_RIGHT_R_PULLDOWN) - 100,
ADC_BUTTON_VALUE(ADC_BUTTONS_RIGHT_R_PULLDOWN) + 100, 1 + BLEN_KEYPAD_RIGHT }, // RIGHT (1948 ... 2148)
{ ADC_BUTTON_VALUE(ADC_BUTTONS_UP_R_PULLDOWN) - 100,
ADC_BUTTON_VALUE(ADC_BUTTONS_UP_R_PULLDOWN) + 100, 1 + BLEN_KEYPAD_UP }, // UP ( 618 ... 818)
{ ADC_BUTTON_VALUE(ADC_BUTTONS_DOWN_R_PULLDOWN) - 100,
ADC_BUTTON_VALUE(ADC_BUTTONS_DOWN_R_PULLDOWN) + 100, 1 + BLEN_KEYPAD_DOWN }, // DOWN (2686 ... 2886)
{ ADC_BUTTON_VALUE(ADC_BUTTONS_MIDDLE_R_PULLDOWN) - 100,
ADC_BUTTON_VALUE(ADC_BUTTONS_MIDDLE_R_PULLDOWN) + 100, 1 + BLEN_KEYPAD_MIDDLE }, // ENTER (1205 ... 1405)
};
uint8_t get_ADC_keyValue(void) {
@ -956,7 +986,8 @@ void MarlinUI::update() {
}
return 0;
}
#endif
#endif // HAS_ADC_BUTTONS
#if HAS_ENCODER_ACTION