buttons WIP

This commit is contained in:
jaseg 2023-05-08 12:45:02 +02:00
parent e7532b40a7
commit 129f398bac
3 changed files with 20 additions and 9 deletions

View file

@ -1,5 +1,5 @@
target remote localhost:3333 #target extended-remote localhost:3333
set print pretty on set print pretty on
set print elements 512 set print elements 512

View file

@ -1,7 +0,0 @@
gdb_port 3333
source [find interface/stlink.cfg]
source [find target/stm32f0x.cfg]
init
arm semihosting enable

View file

@ -7,6 +7,16 @@
#include <usb_if.h> #include <usb_if.h>
int bt_inputs() {
bool bt0 = !!(GPIOB->IDR & (1<<2));
bool bt1 = !!(GPIOB->IDR & (1<<1));
bool bt2 = !!(GPIOB->IDR & (1<<0));
bool bt3 = !!(GPIOB->IDR & (1<<12));
bool bt4 = !!(GPIOB->IDR & (1<<4));
bool bt5 = !!(GPIOA->IDR & (1<<15));
return (bt5<<5) | (bt4<<4) | (bt3<<3) | (bt2<<2) | (bt1<<1) | (bt0<<0);
}
int main(void) { int main(void) {
/* Enable HSE w/ 8 MHz crystal */ /* Enable HSE w/ 8 MHz crystal */
/* FIXME */ /* FIXME */
@ -55,6 +65,8 @@ int main(void) {
#define IN(pin) (0) #define IN(pin) (0)
#define ANALOG(pin) (3<<(2*(pin))) #define ANALOG(pin) (3<<(2*(pin)))
#define CLEAR(pin) (3<<(2*(pin))) #define CLEAR(pin) (3<<(2*(pin)))
#define PULLUP(pin) (1<<(2*pin))
#define PULLDOWN(pin) (2<<(2*pin))
/* GPIOA: /* GPIOA:
* 0 - !ADC_DRDY * 0 - !ADC_DRDY
@ -96,6 +108,7 @@ int main(void) {
(3<<GPIO_OSPEEDR_OSPEEDR10_Pos) | (3<<GPIO_OSPEEDR_OSPEEDR10_Pos) |
(3<<GPIO_OSPEEDR_OSPEEDR13_Pos) | (3<<GPIO_OSPEEDR_OSPEEDR13_Pos) |
(3<<GPIO_OSPEEDR_OSPEEDR14_Pos); (3<<GPIO_OSPEEDR_OSPEEDR14_Pos);
GPIOA->PUPDR |= PULLUP(15); /* BT5 */
GPIOA->BSRR = (1<<1) | (1<<2); /* ADC ~SYNC, ~CS */ GPIOA->BSRR = (1<<1) | (1<<2); /* ADC ~SYNC, ~CS */
/* GPIOB: /* GPIOB:
@ -137,6 +150,11 @@ int main(void) {
(3<<GPIO_OSPEEDR_OSPEEDR13_Pos) | (3<<GPIO_OSPEEDR_OSPEEDR13_Pos) |
(3<<GPIO_OSPEEDR_OSPEEDR14_Pos) | (3<<GPIO_OSPEEDR_OSPEEDR14_Pos) |
(3<<GPIO_OSPEEDR_OSPEEDR15_Pos); (3<<GPIO_OSPEEDR_OSPEEDR15_Pos);
GPIOB->PUPDR |= PULLUP(0) | /* BT2 */
PULLUP(1) | /* BT1 */
PULLUP(2) | /* BT0 */
PULLUP(3) | /* BT4 */
PULLUP(12); /* BT3 */
/* GPIOC: /* GPIOC:
* PC13 - DFU button * PC13 - DFU button
@ -182,7 +200,7 @@ int main(void) {
st_led.led[i].g += 2; st_led.led[i].g += 2;
st_led.led[i].b += 3; st_led.led[i].b += 3;
} }
for (size_t i=0; i<100000; i++) { for (size_t i=0; i<3000000; i++) {
asm volatile ("nop"); asm volatile ("nop");
} }
} }