This commit is contained in:
@@ -18,15 +18,43 @@
|
||||
#define BK1080_REGS_H
|
||||
|
||||
enum BK1080_Register_t {
|
||||
BK1080_REG_00 = 0x00U,
|
||||
BK1080_REG_02_POWER_CONFIGURATION = 0x02U,
|
||||
BK1080_REG_03_CHANNEL = 0x03U,
|
||||
BK1080_REG_00 = 0x00U,
|
||||
BK1080_REG_01_CHIP_ID = 0x01U,
|
||||
BK1080_REG_02_POWER_CONFIGURATION = 0x02U,
|
||||
BK1080_REG_03_CHANNEL = 0x03U,
|
||||
BK1080_REG_04_SYSTEM_CONFIGURATION1 = 0x04U,
|
||||
BK1080_REG_05_SYSTEM_CONFIGURATION2 = 0x05U,
|
||||
BK1080_REG_07 = 0x07U,
|
||||
BK1080_REG_10 = 0x0AU,
|
||||
BK1080_REG_25_INTERNAL = 0x19U,
|
||||
BK1080_REG_06_SYSTEM_CONFIGURATION3 = 0x06U,
|
||||
BK1080_REG_07_TEST1 = 0x07U,
|
||||
BK1080_REG_08_TEST2 = 0x08U,
|
||||
BK1080_REG_09_BOOT_CONFIGURATION = 0x09U,
|
||||
BK1080_REG_10_RSSI_STATUS = 0x0AU,
|
||||
BK1080_REG_11_RSSI_THRESHOLD = 0x0BU,
|
||||
BK1080_REG_12_INTERNAL = 0x0CU,
|
||||
BK1080_REG_13_INTERNAL = 0x0DU,
|
||||
BK1080_REG_14_INTERNAL = 0x0EU,
|
||||
BK1080_REG_15_INTERNAL = 0x0FU,
|
||||
BK1080_REG_16_INTERNAL = 0x10U,
|
||||
BK1080_REG_17_INTERNAL = 0x11U,
|
||||
BK1080_REG_18_INTERNAL = 0x12U,
|
||||
BK1080_REG_19_INTERNAL = 0x13U,
|
||||
BK1080_REG_20_INTERNAL = 0x14U,
|
||||
BK1080_REG_21_INTERNAL = 0x15U,
|
||||
BK1080_REG_22_INTERNAL = 0x16U,
|
||||
BK1080_REG_23_INTERNAL = 0x17U,
|
||||
BK1080_REG_24_INTERNAL = 0x18U,
|
||||
BK1080_REG_25_INTERNAL = 0x19U,
|
||||
BK1080_REG_26_INTERNAL = 0x1AU,
|
||||
BK1080_REG_27_INTERNAL = 0x1BU,
|
||||
BK1080_REG_28_INTERNAL = 0x1CU,
|
||||
BK1080_REG_29_INTERNAL = 0x1DU,
|
||||
BK1080_REG_30_INTERNAL = 0x1EU,
|
||||
BK1080_REG_31_INTERNAL = 0x1FU,
|
||||
BK1080_REG_32_INTERNAL = 0x20U,
|
||||
BK1080_REG_33_INTERNAL = 0x21U,
|
||||
};
|
||||
|
||||
|
||||
typedef enum BK1080_Register_t BK1080_Register_t;
|
||||
|
||||
// REG 07
|
||||
|
@@ -19,6 +19,7 @@
|
||||
#include "driver/gpio.h"
|
||||
#include "driver/i2c.h"
|
||||
#include "driver/system.h"
|
||||
#include "../settings.h"
|
||||
#include "misc.h"
|
||||
|
||||
#ifndef ARRAY_SIZE
|
||||
@@ -69,10 +70,11 @@ void BK1080_Init(uint16_t freq, uint8_t band/*, uint8_t space*/)
|
||||
}
|
||||
|
||||
#ifdef ENABLE_FEAT_F4HWN
|
||||
BK1080_WriteRegister(BK1080_REG_05_SYSTEM_CONFIGURATION2, gMute ? 0x0A10 : 0x0A1F);
|
||||
BK1080_WriteRegister(BK1080_REG_05_SYSTEM_CONFIGURATION2, 0x0A10 | (gEeprom.VOLUME_GAIN >> 2));
|
||||
#else
|
||||
BK1080_WriteRegister(BK1080_REG_05_SYSTEM_CONFIGURATION2, 0x0A1F);
|
||||
#endif
|
||||
BK1080_UpdateSysconf();
|
||||
BK1080_SetFrequency(freq, band/*, space*/);
|
||||
}
|
||||
else {
|
||||
@@ -104,6 +106,15 @@ void BK1080_WriteRegister(BK1080_Register_t Register, uint16_t Value)
|
||||
I2C_Stop();
|
||||
}
|
||||
|
||||
void BK1080_UpdateSysconf(void) {
|
||||
BK1080_WriteRegister(BK1080_REG_04_SYSTEM_CONFIGURATION1,
|
||||
(gEeprom.BK1080_DEEMPHASIS_CONFIG == DEEMPHASIS_OFF ? BK1080_DEEMPHASIS_OFF : BK1080_DEEMPHASIS_ON) |
|
||||
(gEeprom.BK1080_DEEMPHASIS_CONFIG == DEEMPHASIS_EUR ? BK1080_DEEMPHASIS_EUR : BK1080_DEEMPHASIS_USA) |
|
||||
(gEeprom.BK1080_AGC_ENABLED ? BK1080_AGC_ON : BK1080_AGC_OFF) |
|
||||
(gEeprom.BK1080_BLEND_CONFIG << 6)
|
||||
);
|
||||
}
|
||||
|
||||
void BK1080_Mute(bool Mute)
|
||||
{
|
||||
BK1080_WriteRegister(BK1080_REG_02_POWER_CONFIGURATION, Mute ? 0x4201 : 0x0201);
|
||||
@@ -130,7 +141,7 @@ void BK1080_SetFrequency(uint16_t frequency, uint8_t band/*, uint8_t space*/)
|
||||
void BK1080_GetFrequencyDeviation(uint16_t Frequency)
|
||||
{
|
||||
BK1080_BaseFrequency = Frequency;
|
||||
BK1080_FrequencyDeviation = BK1080_ReadRegister(BK1080_REG_07) / 16;
|
||||
BK1080_FrequencyDeviation = BK1080_ReadRegister(BK1080_REG_07_TEST1) / 16;
|
||||
}
|
||||
|
||||
uint16_t BK1080_GetFreqLoLimit(uint8_t band)
|
||||
|
@@ -24,10 +24,20 @@
|
||||
extern uint16_t BK1080_BaseFrequency;
|
||||
extern uint16_t BK1080_FrequencyDeviation;
|
||||
|
||||
#define BK1080_DEEMPHASIS_USA (0 << 11)
|
||||
#define BK1080_DEEMPHASIS_EUR (1 << 11)
|
||||
|
||||
#define BK1080_DEEMPHASIS_ON (0 << 13)
|
||||
#define BK1080_DEEMPHASIS_OFF (1 << 13)
|
||||
|
||||
#define BK1080_AGC_ON (0 << 10)
|
||||
#define BK1080_AGC_OFF (1 << 10)
|
||||
|
||||
void BK1080_Init0(void);
|
||||
void BK1080_Init(uint16_t Frequency, uint8_t band/*, uint8_t space*/);
|
||||
uint16_t BK1080_ReadRegister(BK1080_Register_t Register);
|
||||
void BK1080_WriteRegister(BK1080_Register_t Register, uint16_t Value);
|
||||
void BK1080_UpdateSysconf(void);
|
||||
void BK1080_Mute(bool Mute);
|
||||
uint16_t BK1080_GetFreqLoLimit(uint8_t band);
|
||||
uint16_t BK1080_GetFreqHiLimit(uint8_t band);
|
||||
|
@@ -226,22 +226,22 @@ uint8_t cmds[] = {
|
||||
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
|
||||
}
|
||||
|
||||
#if !defined(ENABLE_SPECTRUM) || !defined(ENABLE_FMRADIO)
|
||||
void ST7565_Gauge(uint8_t line, uint8_t min, uint8_t max, uint8_t value)
|
||||
{
|
||||
gFrameBuffer[line][54] = 0x0c;
|
||||
gFrameBuffer[line][55] = 0x12;
|
||||
|
||||
gFrameBuffer[line][121] = 0x12;
|
||||
gFrameBuffer[line][122] = 0x0c;
|
||||
|
||||
uint8_t filled = map(value, min, max, 56, 120);
|
||||
|
||||
for (uint8_t i = 56; i <= 120; i++) {
|
||||
gFrameBuffer[line][i] = (i <= filled) ? 0x2d : 0x21;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
// #if !defined(ENABLE_SPECTRUM) || !defined(ENABLE_FMRADIO)
|
||||
// void ST7565_Gauge(uint8_t line, uint8_t min, uint8_t max, uint8_t value)
|
||||
// {
|
||||
// gFrameBuffer[line][54] = 0x0c;
|
||||
// gFrameBuffer[line][55] = 0x12;
|
||||
//
|
||||
// gFrameBuffer[line][121] = 0x12;
|
||||
// gFrameBuffer[line][122] = 0x0c;
|
||||
//
|
||||
// uint8_t filled = map(value, min, max, 56, 120);
|
||||
//
|
||||
// for (uint8_t i = 56; i <= 120; i++) {
|
||||
// gFrameBuffer[line][i] = (i <= filled) ? 0x2d : 0x21;
|
||||
// }
|
||||
// }
|
||||
// #endif
|
||||
#endif
|
||||
|
||||
void ST7565_Init(void)
|
||||
|
Reference in New Issue
Block a user