BeRTOS
|
00001 #warning revise me! 00002 00003 00014 #define DECLARE_SMEAN(name, Type, SumType) \ 00015 struct { \ 00016 SumType sum; \ 00017 Type result; \ 00018 int count; \ 00019 } name = { 0, 0, 0 } 00020 00026 #define SMEAN_ADD(mean, sample, max_samples) \ 00027 do { \ 00028 (mean).sum += (sample); \ 00029 if ((mean).count++ >= (max_samples)) \ 00030 { \ 00031 (mean).result = (mean).sum / (max_samples); \ 00032 (mean).sum = 0; \ 00033 (mean).count = 0; \ 00034 } \ 00035 } while (0) 00036 00040 #define SMEAN_GET(mean) ((mean).result) 00041