From 668c89f88988e4bd6149fa7d13650254037f028d Mon Sep 17 00:00:00 2001 From: jaseg Date: Sun, 14 Apr 2019 13:25:23 +0900 Subject: driver/fw: I2C LCD working --- driver_fw/main.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'driver_fw/main.c') diff --git a/driver_fw/main.c b/driver_fw/main.c index ee4a4ed..8551d83 100644 --- a/driver_fw/main.c +++ b/driver_fw/main.c @@ -1,6 +1,8 @@ #include "global.h" #include "serial.h" +#include "i2c.h" +#include "lcd1602.h" #include <8b10b.h> @@ -102,6 +104,15 @@ int main(void) { GPIOA->ODR = 0; /* Set PA4 ODR to 0 */ + GPIOA->OTYPER |= + GPIO_OTYPER_OT_1 + | GPIO_OTYPER_OT_2; + + // FIXME lag 37.3us @ 720 Ohm / 16.0us @ 360 Ohm / 2.8us @ 88 Ohm + GPIOA->OSPEEDR |= + (3<CR2 = (7<CR1 |= SPI_CR1_SPE; + /* I2C for LCD, temp sensor, current sensor */ + i2c_config_filters(I2C1, I2C_AF_ENABLE, 0); + i2c_config_timing(I2C1, 0x2000090e); /* Magic value for 100kHz I2C @ 48MHz CLK. Fell out of STMCubeMX. I love + downloading 120MB of software to download another 100MB of software, only + this time over unsecured HTTP, to generate 3.5 bytes of configuration values + using a Java(TM) GUI. */ + i2c_enable(I2C1); + lcd1602_init(); + lcd_write_str(0, 0, "Hello World!"); + /* TIM3 is used to generate the MOSFET driver control signals */ /* TIM3 running off 48MHz APB1 clk, T=20.833ns */ TIM3->CR1 = 0; /* Disable ARR preload (double-buffering) */ -- cgit