mirror of
https://github.com/jhbruhn/eurorack.git
synced 2025-03-15 02:55:49 +00:00
Start driver implementation
This commit is contained in:
parent
d725452ddb
commit
c728ed9a28
4 changed files with 79 additions and 8 deletions
21
midi2cv/drivers/gpio.cc
Normal file
21
midi2cv/drivers/gpio.cc
Normal file
|
@ -0,0 +1,21 @@
|
|||
#include "gpio.h"
|
||||
|
||||
#include <stm32f10x_conf.h>
|
||||
|
||||
void GPIO::Init() {
|
||||
GPIO_InitTypeDef gpio_init;
|
||||
|
||||
gpio_init.GPIO_Pin = PIN_SS_DAC0 | PIN_SS_DAC1 | PIN_RST_USB | PIN_SS_USB | PIN_SS_OLED | PIN_SDC_OLED;
|
||||
gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
gpio_init.GPIO_Mode = GPIO_Mode_Out_PP;
|
||||
GPIO_Init(GPIOB, &gpio_init);
|
||||
|
||||
gpio_init.GPIO_Pin = PIN_GATE_OUT_1 | PIN_GATE_OUT_2 | PIN_GATE_OUT_3 | PIN_GATE_OUT_4 | PIN_GATE_OUT_5 | PIN_GATE_OUT_6;
|
||||
gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
gpio_init.GPIO_Mode = GPIO_Mode_Out_PP;
|
||||
GPIO_Init(GPIOA, &gpio_init);
|
||||
}
|
||||
|
||||
void GPIO::Write(GPIO_TypeDef* port, uint16_t pin, bool state) {
|
||||
GPIO_WriteBit(GPIOB, pin, static_cast<BitAction>(state));
|
||||
}
|
47
midi2cv/drivers/gpio.h
Normal file
47
midi2cv/drivers/gpio.h
Normal file
|
@ -0,0 +1,47 @@
|
|||
#ifndef MIDI2CV_DRIVERS_GPIO_H
|
||||
#define MIDI2CV_DRIVERS_GPIO_H
|
||||
|
||||
|
||||
#include "stmlib/stmlib.h"
|
||||
#include <stm32f10x_conf.h>
|
||||
|
||||
#define PORT_SS_DAC0 GPIOB
|
||||
#define PIN_SS_DAC0 GPIO_Pin_6
|
||||
#define PORT_SS_DAC1 GPIOB
|
||||
#define PIN_SS_DAC1 GPIO_Pin_7
|
||||
#define PORT_RST_USB GPIOB
|
||||
#define PIN_RST_USB GPIO_Pin_8
|
||||
#define PORT_SS_USB GPIOB
|
||||
#define PIN_SS_USB GPIO_Pin_9
|
||||
#define PORT_SS_OLED GPIOB
|
||||
#define PIN_SS_OLED GPIO_Pin_11
|
||||
#define PORT_SDC_OLED GPIOB
|
||||
#define PIN_SDC_OLED GPIO_Pin_12
|
||||
|
||||
#define PORT_GATE_OUT_1 GPIOA
|
||||
#define PIN_GATE_OUT_1 GPIO_Pin_0
|
||||
#define PORT_GATE_OUT_2 GPIOA
|
||||
#define PIN_GATE_OUT_2 GPIO_Pin_1
|
||||
#define PORT_GATE_OUT_3 GPIOA
|
||||
#define PIN_GATE_OUT_3 GPIO_Pin_2
|
||||
#define PORT_GATE_OUT_4 GPIOA
|
||||
#define PIN_GATE_OUT_4 GPIO_Pin_3
|
||||
#define PORT_GATE_OUT_5 GPIOA
|
||||
#define PIN_GATE_OUT_5 GPIO_Pin_4
|
||||
#define PORT_GATE_OUT_6 GPIOA
|
||||
#define PIN_GATE_OUT_6 GPIO_Pin_5
|
||||
|
||||
#define GPIO_PIN(x) PORT_##x, PIN_##x
|
||||
|
||||
class GPIO {
|
||||
public:
|
||||
GPIO() { }
|
||||
~GPIO() {}
|
||||
|
||||
void Init();
|
||||
void Write(GPIO_TypeDef* port, uint16_t pin, bool state);
|
||||
private:
|
||||
DISALLOW_COPY_AND_ASSIGN(GPIO);
|
||||
};
|
||||
|
||||
#endif
|
|
@ -32,7 +32,7 @@ DENSITY = md
|
|||
MEMORY_MODE = flash
|
||||
# USB = enabled
|
||||
|
||||
#APPLICATION = TRUE
|
||||
APPLICATION = TRUE
|
||||
BOOTLOADER = midi2cv_bootloader
|
||||
|
||||
# Preferred upload command
|
||||
|
@ -50,8 +50,3 @@ TOOLCHAIN_PATH ?= /usr/local/arm-4.8.3/
|
|||
|
||||
include stmlib/makefile.inc
|
||||
|
||||
# Rule for building the firmware update file
|
||||
wav: $(TARGET_BIN)
|
||||
python stm_audio_bootloader/fsk/encoder.py \
|
||||
-s 48000 -b 16 -n 8 -z 4 -p 256 \
|
||||
$(TARGET_BIN)
|
||||
|
|
|
@ -1,14 +1,22 @@
|
|||
#include <stm32f10x_conf.h>
|
||||
|
||||
#include "stmlib/system/system_clock.h"
|
||||
#include "drivers/gpio.h"
|
||||
|
||||
using namespace stmlib;
|
||||
|
||||
GPIO gpio;
|
||||
|
||||
void Init(void) {
|
||||
system_clock.Init();
|
||||
//system_clock.Init();
|
||||
gpio.Init();
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
Init();
|
||||
// hi
|
||||
gpio.Write(GPIO_PIN(GATE_OUT_1), 1);
|
||||
gpio.Write(GPIO_PIN(GATE_OUT_2), 0);
|
||||
gpio.Write(GPIO_PIN(GATE_OUT_3), 1);
|
||||
gpio.Write(GPIO_PIN(GATE_OUT_4), 0);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue