Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:c3344ac96db1, 2019-03-14 (annotated)
- Committer:
- quickeman
- Date:
- Thu Mar 14 12:53:00 2019 +0000
- Revision:
- 0:c3344ac96db1
- Child:
- 1:e4320a230347
OOP version of colour detection program
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
quickeman | 0:c3344ac96db1 | 1 | #include "mbed.h" |
quickeman | 0:c3344ac96db1 | 2 | #include "ColourSensor_H.h" |
quickeman | 0:c3344ac96db1 | 3 | |
quickeman | 0:c3344ac96db1 | 4 | Ticker detectColour; |
quickeman | 0:c3344ac96db1 | 5 | Timeout readColour; |
quickeman | 0:c3344ac96db1 | 6 | Timeout reactivateColour; |
quickeman | 0:c3344ac96db1 | 7 | |
quickeman | 0:c3344ac96db1 | 8 | int main() { |
quickeman | 0:c3344ac96db1 | 9 | printf("Program has started\n\r"); |
quickeman | 0:c3344ac96db1 | 10 | |
quickeman | 0:c3344ac96db1 | 11 | ColourSensor ColourSensor(PTC16, PTC13, PTC12); |
quickeman | 0:c3344ac96db1 | 12 | |
quickeman | 0:c3344ac96db1 | 13 | // Set call rate of colour detection function |
quickeman | 0:c3344ac96db1 | 14 | detectColour.attach(callback(&ColourSensor, &ColourSensor::readIf), 1.0); |
quickeman | 0:c3344ac96db1 | 15 | |
quickeman | 0:c3344ac96db1 | 16 | // Test LED |
quickeman | 0:c3344ac96db1 | 17 | //testLED2.period(1.0); |
quickeman | 0:c3344ac96db1 | 18 | //testLED2.write(0.5); |
quickeman | 0:c3344ac96db1 | 19 | |
quickeman | 0:c3344ac96db1 | 20 | int firstLoop = 1; |
quickeman | 0:c3344ac96db1 | 21 | |
quickeman | 0:c3344ac96db1 | 22 | while (1) { |
quickeman | 0:c3344ac96db1 | 23 | // main program loop |
quickeman | 0:c3344ac96db1 | 24 | if (firstLoop) { |
quickeman | 0:c3344ac96db1 | 25 | printf("Main loop has started\n\r"); |
quickeman | 0:c3344ac96db1 | 26 | firstLoop--; |
quickeman | 0:c3344ac96db1 | 27 | } |
quickeman | 0:c3344ac96db1 | 28 | |
quickeman | 0:c3344ac96db1 | 29 | if (ColourSensor.toggleConst && ColourSensor.toggleA) { |
quickeman | 0:c3344ac96db1 | 30 | // Call readColSenWhich after x seconds |
quickeman | 0:c3344ac96db1 | 31 | printf("Toggle A\n\r"); |
quickeman | 0:c3344ac96db1 | 32 | |
quickeman | 0:c3344ac96db1 | 33 | readColour.attach(callback(&ColourSensor, &ColourSensor::readWhich), 0.4); |
quickeman | 0:c3344ac96db1 | 34 | |
quickeman | 0:c3344ac96db1 | 35 | ColourSensor.toggleA = 0; |
quickeman | 0:c3344ac96db1 | 36 | } |
quickeman | 0:c3344ac96db1 | 37 | |
quickeman | 0:c3344ac96db1 | 38 | if (ColourSensor.toggleConst && ColourSensor.toggleB) { |
quickeman | 0:c3344ac96db1 | 39 | // Process colour sensor data |
quickeman | 0:c3344ac96db1 | 40 | printf("Toggle B\n\r"); |
quickeman | 0:c3344ac96db1 | 41 | |
quickeman | 0:c3344ac96db1 | 42 | ColourSensor.process(); |
quickeman | 0:c3344ac96db1 | 43 | |
quickeman | 0:c3344ac96db1 | 44 | reactivateColour.attach(callback(&ColourSensor, &ColourSensor::makeColourActive), 2.0); |
quickeman | 0:c3344ac96db1 | 45 | |
quickeman | 0:c3344ac96db1 | 46 | ColourSensor.toggleB = 0; |
quickeman | 0:c3344ac96db1 | 47 | } |
quickeman | 0:c3344ac96db1 | 48 | } |
quickeman | 0:c3344ac96db1 | 49 | } |