small change

This commit is contained in:
Kizarm 2025-02-01 10:40:34 +01:00
parent 3783c92bd9
commit c9e1d4e28d
3 changed files with 62 additions and 51 deletions

View file

@ -4,43 +4,43 @@
#endif
#include "gsmdata.h"
const SayedTexts sayed_texts = {
.nula = { 0x0000a2a0u, 22 },
.jedna = { 0x00009f60u, 25 },
.dva = { 0x00009c80u, 22 },
.dve = { 0x00009920u, 26 },
.tri = { 0x00009680u, 20 },
.ctyri = { 0x00009300u, 27 },
.pet = { 0x00009080u, 19 },
.sest = { 0x00008d20u, 26 },
.sedm = { 0x00008a20u, 23 },
.osm = { 0x000087e0u, 17 },
.devet = { 0x00008460u, 27 },
.deset = { 0x000080e0u, 27 },
.jedenact = { 0x00007c00u, 37 },
.dvanact = { 0x00007740u, 36 },
.trinact = { 0x00007280u, 36 },
.ctrnact = { 0x00006da0u, 37 },
.patnact = { 0x00006920u, 34 },
.sestnact = { 0x00006300u, 47 },
.sedmnact = { 0x00005d40u, 44 },
.osmnact = { 0x00005840u, 38 },
.devatenact = { 0x000052a0u, 43 },
.dvacet = { 0x00004ea0u, 31 },
.tricet = { 0x00004ae0u, 29 },
.ctyricet = { 0x00004640u, 35 },
.padesat = { 0x000041c0u, 34 },
.sedesat = { 0x00003c80u, 40 },
.sedmdesat = { 0x000036a0u, 45 },
.osmdesat = { 0x00003180u, 39 },
.devadesat = { 0x00002c20u, 41 },
.sto = { 0x00002940u, 22 },
.dveste = { 0x00002440u, 38 },
.sta = { 0x00002180u, 21 },
.set = { 0x00001ec0u, 21 },
.tisic = { 0x00001ac0u, 31 },
.tisice = { 0x000015a0u, 39 },
.minus = { 0x000011e0u, 29 },
.point = { 0x00000e20u, 29 },
.hafo = { 0x00000ac0u, 26 },
.units = { 0x00000280u, 64 },
.nula = { 0xa2a0u, 22 },
.jedna = { 0x9f60u, 25 },
.dva = { 0x9c80u, 22 },
.dve = { 0x9920u, 26 },
.tri = { 0x9680u, 20 },
.ctyri = { 0x9300u, 27 },
.pet = { 0x9080u, 19 },
.sest = { 0x8d20u, 26 },
.sedm = { 0x8a20u, 23 },
.osm = { 0x87e0u, 17 },
.devet = { 0x8460u, 27 },
.deset = { 0x80e0u, 27 },
.jedenact = { 0x7c00u, 37 },
.dvanact = { 0x7740u, 36 },
.trinact = { 0x7280u, 36 },
.ctrnact = { 0x6da0u, 37 },
.patnact = { 0x6920u, 34 },
.sestnact = { 0x6300u, 47 },
.sedmnact = { 0x5d40u, 44 },
.osmnact = { 0x5840u, 38 },
.devatenact = { 0x52a0u, 43 },
.dvacet = { 0x4ea0u, 31 },
.tricet = { 0x4ae0u, 29 },
.ctyricet = { 0x4640u, 35 },
.padesat = { 0x41c0u, 34 },
.sedesat = { 0x3c80u, 40 },
.sedmdesat = { 0x36a0u, 45 },
.osmdesat = { 0x3180u, 39 },
.devadesat = { 0x2c20u, 41 },
.sto = { 0x2940u, 22 },
.dveste = { 0x2440u, 38 },
.sta = { 0x2180u, 21 },
.set = { 0x1ec0u, 21 },
.tisic = { 0x1ac0u, 31 },
.tisice = { 0x15a0u, 39 },
.minus = { 0x11e0u, 29 },
.point = { 0x0e20u, 29 },
.hafo = { 0x0ac0u, 26 },
.units = { 0x0280u, 64 },
};

View file

@ -113,7 +113,8 @@ void Reader::generate() {
for (unsigned n=0; n<count; n++) {
const text_p & ep = ebase [n];
const text_pair & tp = tbase [n];
fprintf(out, " .%s = { 0x%08lxu, %d },\n", tp.name, size_t (ep.frames), ep.no_frames);
const int padding = 11 - strlen(tp.name);
fprintf(out, " .%s%*s = { 0x%04lxu, %d },\n", tp.name, padding, "", size_t (ep.frames), ep.no_frames);
}
fprintf(out, "};\n");
fclose(out);

View file

@ -55,17 +55,17 @@ static unsigned abs_diff (const int a, const int b) {
const int d = a - b;
return d > 0 ? +d : -d;
}
////////////////////////////////////////////////////////
static GpioClass led (GPIOB, 8u);
static PwmClass pwm;
static FIFO<uint32_t, FIFOLEN> fifo;
static TextPlayer player (fifo, led);
static GsmDecoder decoder(fifo);
static GpioClass button (GPIOA, 0u, (GPIO_Speed_In | GPIO_UPDI_MPPO));
static FIFO<uint32_t, FIFOLEN> avgring;
static AdcDma adc;
static Average avg (avgring);
/////////////////////////// GSM kecátko /////////////////////////////
static GpioClass led (GPIOB, 8u);
static PwmClass pwm;
static FIFO<uint32_t, FIFOLEN> fifo;
static TextPlayer player (fifo, led);
static GsmDecoder decoder(fifo);
/////////////////////////// NTC teploměr /////////////////////////////
static GpioClass button (GPIOA, 0u, (GPIO_Speed_In | GPIO_UPDI_MPPO));
static AdcDma adc;
static FIFO<uint32_t, FIFOLEN> avgring;
static Average avg (avgring);
static const SPLINE<array_size(measured)> spline (measured, false);
int main () {
@ -74,7 +74,16 @@ int main () {
adc.attach (avg);
int old_value = 0;
uint32_t average;
bool flush = true;
for (;;) {
if (flush) { // flush FIFO
led << true;
for (unsigned n=0u; n<FIFOLEN;) {
if (avgring.Read(average)) n += 1u;
}
flush = false;
led << false;
}
if (avgring.Read(average)) {
// average je de facto posunuta doleva o 7, potřebujeme o 16 - rozdíl je tedy 9
const int32_t ivalue = static_cast<int32_t>(average << 9);
@ -85,6 +94,7 @@ int main () {
old_value = temperature;
player.say(old_value, 2); // s rozlišením na setiny
player.say(sayed_texts.units);
flush = true;
}
}
}