Wrong display

This commit is contained in:
StefansE
2026-03-29 13:03:24 +02:00
parent 21874c4455
commit b5000adf0e
8 changed files with 192 additions and 3 deletions

View File

@@ -15,6 +15,12 @@
#include "ds1307.h"
#define NV_COLOUR_HOURS_ADDR 0x08
#define NV_COLOUR_MINUTES_ADDR 0x09
#define NV_COLOUR_SECONDS_ADDR 0x0A
#define NV_COLOUR_BACKGND_ADDR 0x0B
typedef struct {
uint8_t cmdId;
@@ -28,7 +34,10 @@ typedef struct {
uint8_t crc;
} uartMessage_s;
static void cmd_readNV(uint32_t data);
static void cmd_writeNV(uint8_t * data);
static uint8_t nok[] = "NOK\n";
static uint8_t ok[] = "OK\n";
uint8_t myId[] = "Clock\n";
@@ -41,9 +50,44 @@ void (*commands[])(uint32_t) = {
cmd_GetTime,
cmd_setColour_hour,
cmd_setColour_minute,
cmd_setColour_second,
cmd_setColour_background,
cmd_readNV,
cmd_writeNV,
cmd_setColour_second
};
static void cmd_readNV(uint32_t data){
HAL_StatusTypeDef status = HAL_ERROR;
uint8_t addr = (uint8_t) data;
uint8_t respBuf[3] = {0};
status = ds1307_read_user_RAM(addr, respBuf, sizeof(respBuf));
if(HAL_OK == status){
CDC_Transmit_FS(respBuf, sizeof(respBuf));
}
else{
CDC_Transmit_FS(nok, sizeof(nok));
}
}
static void cmd_writeNV(uint8_t * data){
HAL_StatusTypeDef status = HAL_ERROR;
status = ds1307_write_user_RAM(data[0], &data[1], 3);
if(HAL_OK == status){
CDC_Transmit_FS(ok, sizeof(ok));
}
else{
CDC_Transmit_FS(nok, sizeof(nok));
}
}
void setRxFlag(void){
RxComplete_fl = 1;
@@ -131,6 +175,15 @@ void cmd_setColour_hour(uint32_t colour){
clock_setColourHours(r, g, b);
uint8_t nv[] = {
NV_COLOUR_HOURS_ADDR,
r,
g,
b
};
cmd_writeNV(nv);
CDC_Transmit_FS(ok, sizeof(ok));
}
@@ -144,6 +197,16 @@ void cmd_setColour_minute(uint32_t colour){
clock_setColourMinutes(r, g, b);
uint8_t nv[] = {
NV_COLOUR_MINUTES_ADDR,
r,
g,
b
};
cmd_writeNV(nv);
CDC_Transmit_FS(ok, sizeof(ok));
}
@@ -157,6 +220,16 @@ void cmd_setColour_second(uint32_t colour){
clock_setColourSeconds(r, g, b);
uint8_t nv[] = {
NV_COLOUR_SECONDS_ADDR,
r,
g,
b
};
cmd_writeNV(nv);
CDC_Transmit_FS(ok, sizeof(ok));
}
@@ -170,5 +243,15 @@ void cmd_setColour_background(uint32_t colour){
clock_setColourBackground(r, g, b);
uint8_t nv[] = {
NV_COLOUR_BACKGND_ADDR,
r,
g,
b
};
cmd_writeNV(nv);
CDC_Transmit_FS(ok, sizeof(ok));
}