Clean up LCD conditionals, DWIN
This commit is contained in:
105
Marlin/src/lcd/dwin/e3v2/rotary_encoder.h
Normal file
105
Marlin/src/lcd/dwin/e3v2/rotary_encoder.h
Normal file
@@ -0,0 +1,105 @@
|
||||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rotary_encoder.h
|
||||
* @author LEO / Creality3D
|
||||
* @date 2019/07/06
|
||||
* @version 2.0.1
|
||||
* @brief 旋转编码器操作函数
|
||||
******************************************************************************
|
||||
**/
|
||||
|
||||
#include "../../../inc/MarlinConfig.h"
|
||||
#include "../../../MarlinCore.h"
|
||||
|
||||
/*********************** Encoder Set ***********************/
|
||||
|
||||
#define ENCODER_PHASE_0 0
|
||||
#define ENCODER_PHASE_1 2
|
||||
#define ENCODER_PHASE_2 3
|
||||
#define ENCODER_PHASE_3 1
|
||||
|
||||
#define ENCODER_PULSES_PER_STEP 4
|
||||
|
||||
#define BUTTON_PRESSED(BN) !READ(BTN_## BN)
|
||||
|
||||
typedef struct {
|
||||
bool encoderRateEnabled = 0;
|
||||
int encoderMoveValue = 0;
|
||||
millis_t lastEncoderTime = 0;
|
||||
} ENCODER_Rate;
|
||||
|
||||
extern ENCODER_Rate EncoderRate;
|
||||
|
||||
typedef enum {
|
||||
ENCODER_DIFF_NO = 0,
|
||||
ENCODER_DIFF_CW = 1,
|
||||
ENCODER_DIFF_CCW = 2,
|
||||
ENCODER_DIFF_ENTER = 3
|
||||
} ENCODER_DiffState;
|
||||
|
||||
/*编码器初始化 PB12:Encoder_A PB13:Encoder_B PB14:Encoder_C*/
|
||||
void Encoder_Configuration(void);
|
||||
|
||||
/*接收数据解析 返回值:ENCODER_DIFF_NO,无状态; ENCODER_DIFF_CW,顺时针旋转; ENCODER_DIFF_CCW,逆时针旋转; ENCODER_DIFF_ENTER,按下*/
|
||||
ENCODER_DiffState Encoder_ReceiveAnalyze(void);
|
||||
|
||||
|
||||
/*********************** Encoder LED ***********************/
|
||||
|
||||
#if PIN_EXISTS(LCD_LED)
|
||||
|
||||
#define LED_NUM 4
|
||||
#define LED_DATA_HIGH WRITE(LCD_LED_PIN, 1)
|
||||
#define LED_DATA_LOW WRITE(LCD_LED_PIN, 0)
|
||||
|
||||
#define RGB_SCALE_R10_G7_B5 1
|
||||
#define RGB_SCALE_R10_G7_B4 2
|
||||
#define RGB_SCALE_R10_G8_B7 3
|
||||
#define RGB_SCALE_NEUTRAL_WHITE RGB_SCALE_R10_G7_B5 //正白
|
||||
#define RGB_SCALE_WARM_WHITE RGB_SCALE_R10_G7_B4 //暖白
|
||||
#define RGB_SCALE_COOL_WHITE RGB_SCALE_R10_G8_B7 //冷白
|
||||
|
||||
extern unsigned int LED_DataArray[LED_NUM];
|
||||
|
||||
/*状态LED初始化*/
|
||||
void STATE_LED_Configuration(void);
|
||||
|
||||
/*LED灯操作*/
|
||||
void LED_Action(void);
|
||||
|
||||
/*LED初始化*/
|
||||
void LED_Configuration(void);
|
||||
|
||||
/*LED写数据*/
|
||||
void LED_WriteData(void);
|
||||
|
||||
/*LED控制 RGB_Scale:RGB色彩配比 luminance:亮度(0~0xFF)*/
|
||||
void LED_Control(unsigned char RGB_Scale, unsigned char luminance);
|
||||
|
||||
/*LED渐变控制 RGB_Scale:RGB色彩配比 luminance:亮度(0~0xFF) change_Time:渐变时间(ms)*/
|
||||
void LED_GraduallyControl(unsigned char RGB_Scale, unsigned char luminance, unsigned int change_Interval);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user