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

pull/57/head
Mathis Schmieder 2021-10-02 15:57:20 +00:00 zatwierdzone przez Silvano Seva
rodzic 83b0182057
commit 4811838cb8
7 zmienionych plików z 48 dodań i 10 usunięć

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

@ -28,7 +28,12 @@
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()
@ -39,5 +44,13 @@ void kbd_terminate()
keyboard_t kbd_getKeys()
{
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;
}

Wyświetl plik

@ -55,4 +55,21 @@
#define SPI2_SDO GPIOB,14
#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

Wyświetl plik

@ -34,6 +34,10 @@ void platform_init()
gpio_setMode(PTT_LED, OUTPUT);
gpio_setMode(SYNC_LED, OUTPUT);
gpio_setMode(ERR_LED, OUTPUT);
gpio_setMode(PTT_SW, INPUT);
gpio_setMode(PTT_OUT, OUTPUT);
gpio_clearPin(PTT_OUT);
}
void platform_terminate()
@ -66,12 +70,13 @@ int8_t platform_getChSelector()
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()
{
return false;
return true;
}
void platform_ledOn(led_t led)