75 lines
2.3 KiB
C
75 lines
2.3 KiB
C
/* -*- mode: c; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4; coding: utf-8 -*- */
|
|
/************************************************************************************
|
|
** **
|
|
** mcHF QRP Transceiver **
|
|
** K Atanassov - M0NKA 2014 **
|
|
** **
|
|
**---------------------------------------------------------------------------------**
|
|
** **
|
|
** File name: **
|
|
** Description: **
|
|
** Last Modified: **
|
|
** Licence: GNU GPLv3 **
|
|
************************************************************************************/
|
|
|
|
#ifndef __UI_ROTARY_H
|
|
#define __UI_ROTARY_H
|
|
|
|
// Some encoders have detend and generate x
|
|
// ammount of pulses per click
|
|
#define USE_DETENTED_ENCODERS
|
|
#define USE_DETENTED_VALUE 4
|
|
|
|
// Protective band on top and bottom scale
|
|
// dependent on encoder quality and debounce
|
|
// capacitors
|
|
#define ENCODER_FLICKR_BAND 4
|
|
|
|
// Divider to create non linearity
|
|
#define ENCODER_LOG_D 1
|
|
|
|
// Audio Gain public structure
|
|
|
|
typedef struct EncoderSelection
|
|
{
|
|
// pot values
|
|
//
|
|
uint16_t value_old; // previous value
|
|
uint16_t value_new; // most current value
|
|
uint8_t de_detent; // sw de-detent flag
|
|
TIM_TypeDef* tim;
|
|
|
|
} EncoderSelection;
|
|
|
|
//left only for reference:
|
|
/*
|
|
typedef struct EncoderSelection
|
|
{
|
|
// pot values
|
|
//
|
|
ulong value_old; // previous value
|
|
ulong value_new; // most current value
|
|
uchar de_detent; // sw de-detent flag
|
|
TIM_TypeDef* tim;
|
|
|
|
} EncoderSelection;
|
|
*/
|
|
|
|
void UiRotaryFreqEncoderInit(void);
|
|
|
|
void UiRotaryEncoderOneInit(void);
|
|
void UiRotaryEncoderTwoInit(void);
|
|
void UiRotaryEncoderThreeInit(void);
|
|
enum EncoderId
|
|
{
|
|
ENC1 = 0,
|
|
ENC2,
|
|
ENC3,
|
|
ENCFREQ,
|
|
ENC_MAX // this needs to be the last entry
|
|
};
|
|
|
|
int UiDriverEncoderRead(const uint32_t encId);
|
|
|
|
#endif
|