From f5af8df760ab41e5df64261f47c326992644edfd Mon Sep 17 00:00:00 2001 From: Dual Tachyon Date: Sun, 27 Aug 2023 12:28:30 +0100 Subject: [PATCH] Added remaining known BK1080 features. --- driver/bk1080.c | 8 ++++++++ driver/bk1080.h | 1 + misc.c | 4 ++-- misc.h | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/driver/bk1080.c b/driver/bk1080.c index 1a34f97..bb54a8c 100644 --- a/driver/bk1080.c +++ b/driver/bk1080.c @@ -19,6 +19,7 @@ #include "driver/gpio.h" #include "driver/i2c.h" #include "driver/system.h" +#include "misc.h" #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) @@ -102,3 +103,10 @@ void BK1080_SetFrequency(uint16_t Frequency) BK1080_WriteRegister(BK1080_REG_03_CHANNEL, (Frequency - 760) | 0x8000); } +void BK1080_GetFrequencyDeviation(uint16_t Frequency) +{ + g_20000362 = Frequency; + // Doubts whether this register is signed or not + gFM_FrequencyDeviation = (int16_t)BK1080_ReadRegister(BK1080_REG_07) / 16; +} + diff --git a/driver/bk1080.h b/driver/bk1080.h index 8931dbe..e05a799 100644 --- a/driver/bk1080.h +++ b/driver/bk1080.h @@ -26,6 +26,7 @@ uint16_t BK1080_ReadRegister(BK1080_Register_t Register); void BK1080_WriteRegister(BK1080_Register_t Register, uint16_t Value); void BK1080_Mute(bool Mute); void BK1080_SetFrequency(uint16_t Frequency); +void BK1080_GetFrequencyDeviation(uint16_t Frequency); #endif diff --git a/misc.c b/misc.c index 937bae1..f29eca7 100644 --- a/misc.c +++ b/misc.c @@ -170,8 +170,8 @@ volatile bool gSystickFlag11; volatile uint16_t ScanPauseDelayIn10msec; -// This probably should be signed! But Ghidra disgrees -uint16_t gFM_FrequencyDeviation; +// Doubts about whether this should be signed or not. +int16_t gFM_FrequencyDeviation; uint16_t gCurrentRSSI; diff --git a/misc.h b/misc.h index 6ef6034..65416c5 100644 --- a/misc.h +++ b/misc.h @@ -178,7 +178,7 @@ extern volatile bool gSystickFlag11; extern volatile uint16_t ScanPauseDelayIn10msec; -extern uint16_t gFM_FrequencyDeviation; +extern int16_t gFM_FrequencyDeviation; extern uint16_t gCurrentRSSI;