![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Embedded software Assessment 2
Dependencies: MCP23017 SDFileSystem USBDevice WattBob_TextLCD mbed
main.cpp
- Committer:
- muaiyd
- Date:
- 2014-03-04
- Revision:
- 19:304b17087d06
- Parent:
- 18:f485d46a7acb
- Child:
- 20:00a9a95ef083
File content as of revision 19:304b17087d06:
/* Cyclic Executive This software is built to test (Cyclic Executive). Five main functions are used in and every one of them has its own time of repetition. To execute this, a Ticker was used to call a function every 100 mSec. In other words, when 100 mSec is passed, the Cycle function is called and so on every 100 mSec. In this software a benefit is a token place for the difference between a float division with integer one. For example float(Counter/4.0)-Counter/4 if the Counter is a real repetition of 4 so the result of this will be 0. As a result every 4 cycle (400 mSec) the condition be true and calling the function. Also, after 8 cycles (800 mSec) the condition is true for two factions, but the processor will implement on the priority that it was put in the program. http://mbed.org/users/muaiyd/code/ass2/ */ #include "Function.h" uint16_t Counter=0; void CycleFunction(); int main(){ Init_LCD(); InitFile(); LogTimer.start(); //Call the CycleFunction every 100 msec can see that on pin30 Cycle.attach(&CycleFunction,0.1); } void CycleFunction(){ TickerPin = !(TickerPin); //Can see the period of execute every function below on the pin that //writen infront of it //The least common multiple for all the above is 1800 cycles // so every 180 Sec all the functions are repeated Counter++; if(Counter == 1800) Counter = 0; if( Counter % 4 == 0) ReadDigitalin(); //Pin 21 if( Counter % 8 ==0) ReadAnalogin(); //Pin 22 if( Counter % 10 == 0) FreqMsur(); //Pin 23 if( Counter % 15 == 0) BinaryCounter();//Pin 24 if( Counter % 18 == 0) InputCheck(); //Pin 25 if( Counter % 20 == 0 ) Display(); //Pin 26 if( Counter % 50 == 0 ) LogFile(); //Pin 27 }