Colour sensors calibrated

Dependencies:   mbed-rtos mbed Servo QEI

Fork of ICRSEurobot13 by Thomas Branch

Committer:
xiaxia686
Date:
Fri Apr 12 20:59:18 2013 +0000
Revision:
46:adcd57a5e402
Parent:
43:6504d85d85b4
Colours Sensors fixed

Who changed what in which revision?

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