<div id="geary-body" dir="auto"><div>Thanks Robin. My 1 hour and 24 hour calculations do pretty much the same. I know that I have two bugs lurking in my calculation code:</div><div><ul><li>total rainfall returns to zero when the batteries in the sensor are changed</li><li>wrap-around</li></ul><div>This started as a no-code project; I guess I will have to fix these issues sooner or later.</div><div><br></div><div>Also, while inspecting the wind sensor this morning, I noticed that it is not pointing in the direction that it should be. It turns out the the mounting pole was not fixed firmly enough and must have rotated in a strong wind. I have no idea when it moved, but it means that my 3 days of recorded wind-direction history is wrong.</div><div><br></div><div>Stephen Irons</div></div></div><div id="geary-quote" dir="auto"><br>On Fri, May 6, 2022 at 00:36, Robin Gilks <gb7ipd@gmail.com> wrote:<br><blockquote type="cite"><div dir="ltr"><div dir="ltr">Here is a simple rainfall totalling function that works for me (global vars for clarity!!) - it handles the 12 bit rain data my system produces.<div><br></div><div>int16_t rain_mins[60];<br>int16_t rain_hours[24];<br>int16_t rain1h;                 /* rain in last hour */<br>int16_t rain24h;                /* rain in last day */<br>int16_t gRain;<br></div><div><br></div><div>// keep a history of raw total rainfall over 1 hour and 1 day <br>// so that actuals can be calculated when required.<br>static void<br>update_rain (void)<br>{<br>   RT_t calendartime;<br><br>   ReadDateTime (&calendartime);<br><br>   rain_mins[calendartime.min] = gRain;<br>   rain_hours[calendartime.hour] = gRain;<br>   // allow for wraparound of data from remote<br>   rain1h = (gRain + 4096 - rain_mins[(calendartime.min + 1) % 60]) % 4096;<br>   rain24h = (gRain + 4096 - rain_hours[(calendartime.hour + 1) % 24]) % 4096;<br>}<br></div><div><br></div><div>The rest (of the really old arduino code) can be found on my github page - this is extracted from a later port to stm32F1/F4</div><div> <a href="https://github.com/g8ecj/bertos/blob/all/boards/arduino/examples/arduino_WxRx/main.c">https://github.com/g8ecj/bertos/blob/all/boards/arduino/examples/arduino_WxRx/main.c</a></div><div><br></div><div>-- </div><div>Robin</div><div><br></div></div></div>
</blockquote></div>