Module17: implemented keyboard driver, updated display, output audio stream and platform drivers

This commit is contained in:
Mathis Schmieder 2021-10-02 15:57:20 +00:00 committed by Silvano Seva
parent 83b0182057
commit 4811838cb8
7 changed files with 48 additions and 10 deletions

View File

@ -205,12 +205,12 @@ streamId inputStream_start(const enum AudioSource source,
switch(source) switch(source)
{ {
case SOURCE_MIC: case SOURCE_MIC:
gpio_setMode(GPIOA, 2, INPUT_ANALOG); gpio_setMode(AUDIO_MIC, INPUT_ANALOG);
ADC2->SQR3 = 2; ADC2->SQR3 = 2;
break; break;
case SOURCE_RTX: case SOURCE_RTX:
gpio_setMode(GPIOA, 1, INPUT_ANALOG); gpio_setMode(BASEBAND_RX, INPUT_ANALOG);
ADC2->SQR3 = 1; ADC2->SQR3 = 1;
break; break;

View File

@ -110,8 +110,8 @@ streamId outputStream_start(const enum AudioSink destination,
} }
/* Configure GPIOs */ /* Configure GPIOs */
gpio_setMode(GPIOA, 4, INPUT_ANALOG); /* Baseband TX */ gpio_setMode(BASEBAND_TX, INPUT_ANALOG); /* Baseband TX */
gpio_setMode(GPIOA, 5, INPUT_ANALOG); /* Spk output */ gpio_setMode(AUDIO_SPK, INPUT_ANALOG); /* Spk output */
/* /*
* Enable peripherals * Enable peripherals

View File

@ -20,6 +20,8 @@
#include <interfaces/platform.h> #include <interfaces/platform.h>
#include <interfaces/radio.h> #include <interfaces/radio.h>
#include <interfaces/gpio.h>
#include <hwconfig.h>
void radio_init(const rtxStatus_t *rtxState) void radio_init(const rtxStatus_t *rtxState)
{ {
@ -48,11 +50,12 @@ bool radio_checkRxDigitalSquelch()
void radio_enableRx() void radio_enableRx()
{ {
gpio_clearPin(PTT_OUT);
} }
void radio_enableTx() void radio_enableTx()
{ {
gpio_setPin(PTT_OUT);
} }
void radio_disableRtx() void radio_disableRtx()

View File

@ -80,9 +80,9 @@ void display_init()
gpio_clearPin(LCD_RS); gpio_clearPin(LCD_RS);
gpio_clearPin(LCD_RST); /* Reset controller */ gpio_clearPin(LCD_RST); /* Reset controller */
delayMs(1); delayMs(50);
gpio_setPin(LCD_RST); gpio_setPin(LCD_RST);
delayMs(5); delayMs(50);
gpio_clearPin(LCD_CS); gpio_clearPin(LCD_CS);

View File

@ -28,7 +28,12 @@
void kbd_init() void kbd_init()
{ {
gpio_setMode(ESC_SW, INPUT);
gpio_setMode(ENTER_SW, INPUT);
gpio_setMode(LEFT_SW, INPUT);
gpio_setMode(RIGHT_SW, INPUT);
gpio_setMode(UP_SW, INPUT);
gpio_setMode(DOWN_SW, INPUT);
} }
void kbd_terminate() void kbd_terminate()
@ -39,5 +44,13 @@ void kbd_terminate()
keyboard_t kbd_getKeys() keyboard_t kbd_getKeys()
{ {
keyboard_t keys = 0; keyboard_t keys = 0;
if(gpio_readPin(ENTER_SW) == 1) keys |= KEY_ESC;
if(gpio_readPin(ESC_SW) == 1) keys |= KEY_ENTER;
if(gpio_readPin(LEFT_SW) == 1) keys |= KEY_LEFT;
if(gpio_readPin(RIGHT_SW) == 1) keys |= KEY_RIGHT;
if(gpio_readPin(UP_SW) == 1) keys |= KEY_UP;
if(gpio_readPin(DOWN_SW) == 1) keys |= KEY_DOWN;
return keys; return keys;
} }

View File

@ -55,4 +55,21 @@
#define SPI2_SDO GPIOB,14 #define SPI2_SDO GPIOB,14
#define SPI2_SDI GPIOB,15 #define SPI2_SDI GPIOB,15
/* Keyboard */
#define ESC_SW GPIOD,1
#define RIGHT_SW GPIOD,2
#define UP_SW GPIOD,3
#define DOWN_SW GPIOD,4
#define LEFT_SW GPIOB,9
#define ENTER_SW GPIOB,8
#define PTT_SW GPIOD,8
#define PTT_OUT GPIOD,10
/* Audio */
#define AUDIO_MIC GPIOA,2
#define AUDIO_SPK GPIOA,5
#define BASEBAND_RX GPIOA,1
#define BASEBAND_TX GPIOA,4
#endif #endif

View File

@ -34,6 +34,10 @@ void platform_init()
gpio_setMode(PTT_LED, OUTPUT); gpio_setMode(PTT_LED, OUTPUT);
gpio_setMode(SYNC_LED, OUTPUT); gpio_setMode(SYNC_LED, OUTPUT);
gpio_setMode(ERR_LED, OUTPUT); gpio_setMode(ERR_LED, OUTPUT);
gpio_setMode(PTT_SW, INPUT);
gpio_setMode(PTT_OUT, OUTPUT);
gpio_clearPin(PTT_OUT);
} }
void platform_terminate() void platform_terminate()
@ -66,12 +70,13 @@ int8_t platform_getChSelector()
bool platform_getPttStatus() bool platform_getPttStatus()
{ {
return false; /* PTT line has a pullup resistor with PTT switch closing to ground */
return (gpio_readPin(PTT_SW) == 0) ? true : false;
} }
bool platform_pwrButtonStatus() bool platform_pwrButtonStatus()
{ {
return false; return true;
} }
void platform_ledOn(led_t led) void platform_ledOn(led_t led)