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:23508e7103a4, 2019-03-18 (annotated)
- Committer:
- quickeman
- Date:
- Mon Mar 18 11:21:43 2019 +0000
- Revision:
- 0:23508e7103a4
Version 2 of OOP Colour Sensor program.; ; Altered so solenoid is ON by default and only turns OFF when dropping disk.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| quickeman | 0:23508e7103a4 | 1 | #include "mbed.h" |
| quickeman | 0:23508e7103a4 | 2 | #include "ColourSensor_H.h" |
| quickeman | 0:23508e7103a4 | 3 | |
| quickeman | 0:23508e7103a4 | 4 | Ticker detectColour; |
| quickeman | 0:23508e7103a4 | 5 | Timeout readColour; |
| quickeman | 0:23508e7103a4 | 6 | Timeout reactivateColour; |
| quickeman | 0:23508e7103a4 | 7 | Timeout solenoidBackOn; |
| quickeman | 0:23508e7103a4 | 8 | |
| quickeman | 0:23508e7103a4 | 9 | int main() { |
| quickeman | 0:23508e7103a4 | 10 | //printf("Program has started\n\r"); |
| quickeman | 0:23508e7103a4 | 11 | |
| quickeman | 0:23508e7103a4 | 12 | ColourSensor ColourSensor(PTC16, PTC13, PTE20); |
| quickeman | 0:23508e7103a4 | 13 | |
| quickeman | 0:23508e7103a4 | 14 | // Set call rate of colour detection function |
| quickeman | 0:23508e7103a4 | 15 | detectColour.attach(callback(&ColourSensor, &ColourSensor::readIf), 0.5); |
| quickeman | 0:23508e7103a4 | 16 | |
| quickeman | 0:23508e7103a4 | 17 | // int firstLoop = 1; |
| quickeman | 0:23508e7103a4 | 18 | |
| quickeman | 0:23508e7103a4 | 19 | while (1) { |
| quickeman | 0:23508e7103a4 | 20 | // main program loop |
| quickeman | 0:23508e7103a4 | 21 | /* |
| quickeman | 0:23508e7103a4 | 22 | if (firstLoop) { |
| quickeman | 0:23508e7103a4 | 23 | printf("Main loop has started\n\r"); |
| quickeman | 0:23508e7103a4 | 24 | firstLoop--; |
| quickeman | 0:23508e7103a4 | 25 | } |
| quickeman | 0:23508e7103a4 | 26 | */ |
| quickeman | 0:23508e7103a4 | 27 | |
| quickeman | 0:23508e7103a4 | 28 | if (ColourSensor.toggleConst && ColourSensor.toggleA) { |
| quickeman | 0:23508e7103a4 | 29 | // Call readColSenWhich after x seconds |
| quickeman | 0:23508e7103a4 | 30 | //printf("Toggle A\n\r"); |
| quickeman | 0:23508e7103a4 | 31 | |
| quickeman | 0:23508e7103a4 | 32 | readColour.attach(callback(&ColourSensor, &ColourSensor::readWhich), 0.2); |
| quickeman | 0:23508e7103a4 | 33 | |
| quickeman | 0:23508e7103a4 | 34 | ColourSensor.toggleA = 0; |
| quickeman | 0:23508e7103a4 | 35 | } |
| quickeman | 0:23508e7103a4 | 36 | |
| quickeman | 0:23508e7103a4 | 37 | if (ColourSensor.toggleConst && ColourSensor.toggleB) { |
| quickeman | 0:23508e7103a4 | 38 | // Process colour sensor data |
| quickeman | 0:23508e7103a4 | 39 | //printf("Toggle B\n\r"); |
| quickeman | 0:23508e7103a4 | 40 | |
| quickeman | 0:23508e7103a4 | 41 | ColourSensor.process(); |
| quickeman | 0:23508e7103a4 | 42 | |
| quickeman | 0:23508e7103a4 | 43 | if(ColourSensor.flagColour) { |
| quickeman | 0:23508e7103a4 | 44 | // If dropped disk |
| quickeman | 0:23508e7103a4 | 45 | solenoidBackOn.attach(callback(&ColourSensor, &ColourSensor::solenoidOn), 2.0); |
| quickeman | 0:23508e7103a4 | 46 | } |
| quickeman | 0:23508e7103a4 | 47 | |
| quickeman | 0:23508e7103a4 | 48 | reactivateColour.attach(callback(&ColourSensor, &ColourSensor::makeColourActive), 2.0); |
| quickeman | 0:23508e7103a4 | 49 | |
| quickeman | 0:23508e7103a4 | 50 | ColourSensor.toggleB = 0; |
| quickeman | 0:23508e7103a4 | 51 | } |
| quickeman | 0:23508e7103a4 | 52 | } |
| quickeman | 0:23508e7103a4 | 53 | } |