2014 Eurobot fork

Dependencies:   mbed-rtos mbed QEI

Committer:
rsavitski
Date:
Tue Oct 15 12:19:32 2013 +0000
Revision:
92:4a1225fbb146
Parent:
42:6504d85d85b4
touch: ripped out 2013-specific bits. Need to address "2014" comments. Rewrite AI layer and other deleted parts.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
madcowswe 28:4e20b44251c6 1
madcowswe 28:4e20b44251c6 2 #include "rtos.h"
madcowswe 28:4e20b44251c6 3 #include "mbed.h"
madcowswe 28:4e20b44251c6 4 #include "Printing.h"
madcowswe 28:4e20b44251c6 5
madcowswe 28:4e20b44251c6 6 Timer SystemTime;
madcowswe 28:4e20b44251c6 7
madcowswe 28:4e20b44251c6 8 Ticker CPUIdleMeasureTicker;
madcowswe 28:4e20b44251c6 9 volatile unsigned int nopctr = 0;
madcowswe 42:6504d85d85b4 10 const float s_per_nopcycle = 1.0f/16000000.0f;
madcowswe 28:4e20b44251c6 11
madcowswe 28:4e20b44251c6 12 float CpuUsage = 0;
madcowswe 28:4e20b44251c6 13
madcowswe 28:4e20b44251c6 14 void nopwait(int ms){
madcowswe 28:4e20b44251c6 15 while(ms--)
madcowswe 28:4e20b44251c6 16 for (volatile int i = 0; i < 24000; i++);
madcowswe 28:4e20b44251c6 17 }
madcowswe 28:4e20b44251c6 18
madcowswe 28:4e20b44251c6 19 void PostAndResetCPUIdle(){
madcowswe 42:6504d85d85b4 20 static int oldnopctr = 0;
madcowswe 42:6504d85d85b4 21 int deltanop = nopctr - oldnopctr;
madcowswe 42:6504d85d85b4 22 oldnopctr = nopctr;
madcowswe 42:6504d85d85b4 23 CpuUsage = 1.0f - (s_per_nopcycle * deltanop);
madcowswe 28:4e20b44251c6 24 Printing::updateval(10,CpuUsage);
madcowswe 28:4e20b44251c6 25 }
madcowswe 28:4e20b44251c6 26
madcowswe 28:4e20b44251c6 27 void measureCPUidle (void const*){
madcowswe 28:4e20b44251c6 28
madcowswe 28:4e20b44251c6 29 osThreadSetPriority (osThreadGetId(), osPriorityIdle);
madcowswe 28:4e20b44251c6 30 Printing::registerID(10, 1);
madcowswe 28:4e20b44251c6 31
madcowswe 28:4e20b44251c6 32 CPUIdleMeasureTicker.attach(PostAndResetCPUIdle, 1);
madcowswe 28:4e20b44251c6 33
madcowswe 28:4e20b44251c6 34 while(1)
madcowswe 28:4e20b44251c6 35 nopctr++;
madcowswe 28:4e20b44251c6 36 }