Add optional use of threading for runtime module (-DRUNTIME_USES_THREADING)

dev-sxmv
Harald Wolff 2017-11-21 12:06:59 +01:00
parent 6291c813ec
commit dc52340562
2 changed files with 39 additions and 6 deletions

View File

@ -9,8 +9,6 @@
#include <stdint.h>
#define ASSERT_BUFFER_LEN 8
#define RTA_USER0 0x01
@ -101,9 +99,13 @@ struct rt_ram {
uint32_t unix_timeoffset;
unix_time_changing_t
unix_time_changing;
#if !defined(RUNTIME_USES_THREADING)
SYSTIMER *timer;
#else
thread_t *rtThread;
#endif
systick_t secs_last;
systick_t secs_current,
secs_gone;

View File

@ -11,17 +11,23 @@
*
* @{
*/
volatile struct rt_ram rt_ram;
volatile struct rt_ram rt_ram;
/*! \brief Signal Thread.
*
*/
void runtime_signal(void)
{
#if !defined(RUNTIME_USES_THREADING)
timer_start( rt_ram.timer, 1L );
#else
thread_wake( rt_ram.rtThread );
#endif
};
/*! \brief Runtime-Thread.
*
* Ermittelt Betriebsstunden des Geräts
@ -44,6 +50,23 @@ void runtime_cycle(void)
rt_ram.secs_last = rt_ram.secs_current;
};
#if defined(RUNTIME_USES_THREADING)
void runtime_thread(void* arg){
while (1){
wait_ms( 10000l );
runtime_cycle();
};
};
#endif
/*! \brief Startet Runtime-Thread.
*
*/
@ -62,8 +85,16 @@ void runtime_start(int16_t bank)
rt_ram.secs_last = systick_secs();
rt_ram.bank = bank;
#if !defined(RUNTIME_USES_THREADING)
rt_ram.timer = timer_create_ex( TIMERID_SYS_RUNTIME, 10000000L, runtime_cycle, TF_REPEAT);
timer_start( rt_ram.timer, 0 );
#else
thread_alloc( runtime_thread, NULL, 256 );
#endif
};