From f7ed7670f375dad093fe7189a76da3fbef2b8061 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?King=20K=C3=A9vin?= Date: Mon, 11 Jul 2022 10:39:09 +0200 Subject: [PATCH] add UART EEPROM --- main.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/main.c b/main.c index 7459ff6..23737d3 100644 --- a/main.c +++ b/main.c @@ -40,6 +40,40 @@ static void wait_10us(uint32_t us10) while (us10--); // burn energy } +void putc(char c) +{ + while (!UART1->SR.fields.TXE); // wait until TX buffer is empty + UART1->DR.reg = c; // put character in buffer to be transmitted + // don't wait until the transmission is complete +} + +void puts(const char* s) +{ + if (NULL == s) { + return; + } + while (*s) { + putc(*s++); + IWDG_KR = IWDG_KR_KEY_REFRESH; // reset watchdog + } +} + +void putn(uint8_t n) +{ + n &= 0x0f; // ensure it's a nibble + if (n < 0xa) { + putc('0' + n); + } else { + putc('a' + (n - 0x0a)); + } +} + +void puth(uint8_t h) +{ + putn(h >> 4); + putn(h & 0x0f); +} + void main(void) { sim(); // disable interrupts (while we reconfigure them)