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:d3b2fef75f9c, 2017-11-02 (annotated)
- Committer:
- Sunastra
- Date:
- Thu Nov 02 10:18:58 2017 +0000
- Revision:
- 0:d3b2fef75f9c
NEWLCD
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| Sunastra | 0:d3b2fef75f9c | 1 | // https://www.youtube.com/watch?v=yScO_v7NUYQ |
| Sunastra | 0:d3b2fef75f9c | 2 | // LEITURA DE BOTÕES |
| Sunastra | 0:d3b2fef75f9c | 3 | |
| Sunastra | 0:d3b2fef75f9c | 4 | #include "mbed.h" |
| Sunastra | 0:d3b2fef75f9c | 5 | #include "TextLCD.h" |
| Sunastra | 0:d3b2fef75f9c | 6 | |
| Sunastra | 0:d3b2fef75f9c | 7 | |
| Sunastra | 0:d3b2fef75f9c | 8 | //FRDM-K64F |
| Sunastra | 0:d3b2fef75f9c | 9 | //TextLCD lcd(PTA0,PTC4,PTB23,PTA2,PTC2,PTC3); // rs, e, d4-d7 |
| Sunastra | 0:d3b2fef75f9c | 10 | TextLCD lcd(D8, D9, D4, D5, D6, D7); // rs, e, d4-d7 |
| Sunastra | 0:d3b2fef75f9c | 11 | |
| Sunastra | 0:d3b2fef75f9c | 12 | DigitalIn digi1 (D1); |
| Sunastra | 0:d3b2fef75f9c | 13 | DigitalIn digi2 (D2); |
| Sunastra | 0:d3b2fef75f9c | 14 | DigitalIn digi3 (D3); |
| Sunastra | 0:d3b2fef75f9c | 15 | |
| Sunastra | 0:d3b2fef75f9c | 16 | enum States {calib1, calib2, homing, emgcontrol, demo}; //calib1=0, calib2=1, ..., demo=4 |
| Sunastra | 0:d3b2fef75f9c | 17 | int state; |
| Sunastra | 0:d3b2fef75f9c | 18 | Ticker main_loop; |
| Sunastra | 0:d3b2fef75f9c | 19 | |
| Sunastra | 0:d3b2fef75f9c | 20 | float looptime = 0.001f; |
| Sunastra | 0:d3b2fef75f9c | 21 | |
| Sunastra | 0:d3b2fef75f9c | 22 | //Timer time; |
| Sunastra | 0:d3b2fef75f9c | 23 | |
| Sunastra | 0:d3b2fef75f9c | 24 | |
| Sunastra | 0:d3b2fef75f9c | 25 | |
| Sunastra | 0:d3b2fef75f9c | 26 | AnalogIn Sensor(PTB2); //ESPECIFICA O PINO DE LEITURA ANALOGICA PARA FRDM-K64F |
| Sunastra | 0:d3b2fef75f9c | 27 | void loopfunction(){ |
| Sunastra | 0:d3b2fef75f9c | 28 | switch (state){ |
| Sunastra | 0:d3b2fef75f9c | 29 | case calib1: |
| Sunastra | 0:d3b2fef75f9c | 30 | lcd.printf(" * Calibrating... /n motor 1 * "); //while in calib 1 print |
| Sunastra | 0:d3b2fef75f9c | 31 | lcd.cls(); |
| Sunastra | 0:d3b2fef75f9c | 32 | break; |
| Sunastra | 0:d3b2fef75f9c | 33 | |
| Sunastra | 0:d3b2fef75f9c | 34 | case calib2: |
| Sunastra | 0:d3b2fef75f9c | 35 | lcd.printf(" * Calibrating... /n motor 2 * "); //while in calib 2 print |
| Sunastra | 0:d3b2fef75f9c | 36 | lcd.cls(); |
| Sunastra | 0:d3b2fef75f9c | 37 | break; |
| Sunastra | 0:d3b2fef75f9c | 38 | |
| Sunastra | 0:d3b2fef75f9c | 39 | case homing: |
| Sunastra | 0:d3b2fef75f9c | 40 | lcd.printf(" * Homing... * "); //while in homing print |
| Sunastra | 0:d3b2fef75f9c | 41 | lcd.cls(); |
| Sunastra | 0:d3b2fef75f9c | 42 | break; |
| Sunastra | 0:d3b2fef75f9c | 43 | |
| Sunastra | 0:d3b2fef75f9c | 44 | case emgcontrol: |
| Sunastra | 0:d3b2fef75f9c | 45 | lcd.printf(" * Calibrating EMG... * "); //while calibrating EMG print |
| Sunastra | 0:d3b2fef75f9c | 46 | lcd.cls(); |
| Sunastra | 0:d3b2fef75f9c | 47 | break; |
| Sunastra | 0:d3b2fef75f9c | 48 | |
| Sunastra | 0:d3b2fef75f9c | 49 | case demo: |
| Sunastra | 0:d3b2fef75f9c | 50 | lcd.printf(" * demo... * "); //while in demo print |
| Sunastra | 0:d3b2fef75f9c | 51 | lcd.cls(); |
| Sunastra | 0:d3b2fef75f9c | 52 | break; |
| Sunastra | 0:d3b2fef75f9c | 53 | } |
| Sunastra | 0:d3b2fef75f9c | 54 | } |
| Sunastra | 0:d3b2fef75f9c | 55 | |
| Sunastra | 0:d3b2fef75f9c | 56 | |
| Sunastra | 0:d3b2fef75f9c | 57 | |
| Sunastra | 0:d3b2fef75f9c | 58 | |
| Sunastra | 0:d3b2fef75f9c | 59 | int main() { |
| Sunastra | 0:d3b2fef75f9c | 60 | |
| Sunastra | 0:d3b2fef75f9c | 61 | lcd.printf(" Calibration \n FRDM-K64F"); |
| Sunastra | 0:d3b2fef75f9c | 62 | wait(3); |
| Sunastra | 0:d3b2fef75f9c | 63 | lcd.cls(); |
| Sunastra | 0:d3b2fef75f9c | 64 | main_loop.attach(&loopfunction, looptime); //1000 Hz main loop |
| Sunastra | 0:d3b2fef75f9c | 65 | while(1){ // Clean the display |
| Sunastra | 0:d3b2fef75f9c | 66 | if(Sensor.read_u16()>12000 && Sensor.read_u16()< 15000){ |
| Sunastra | 0:d3b2fef75f9c | 67 | state = calib1; |
| Sunastra | 0:d3b2fef75f9c | 68 | } |
| Sunastra | 0:d3b2fef75f9c | 69 | |
| Sunastra | 0:d3b2fef75f9c | 70 | if(Sensor.read_u16()>46000 && Sensor.read_u16()< 48000){ |
| Sunastra | 0:d3b2fef75f9c | 71 | state = calib2; |
| Sunastra | 0:d3b2fef75f9c | 72 | } |
| Sunastra | 0:d3b2fef75f9c | 73 | |
| Sunastra | 0:d3b2fef75f9c | 74 | if(Sensor.read_u16()>30000 && Sensor.read_u16()< 32000){ |
| Sunastra | 0:d3b2fef75f9c | 75 | state = homing; |
| Sunastra | 0:d3b2fef75f9c | 76 | } |
| Sunastra | 0:d3b2fef75f9c | 77 | |
| Sunastra | 0:d3b2fef75f9c | 78 | if(Sensor.read_u16()>0 && Sensor.read_u16()< 10000){ |
| Sunastra | 0:d3b2fef75f9c | 79 | lcd.printf("right", Sensor.read_u16()); |
| Sunastra | 0:d3b2fef75f9c | 80 | wait(1); |
| Sunastra | 0:d3b2fef75f9c | 81 | lcd.cls(); |
| Sunastra | 0:d3b2fef75f9c | 82 | } |
| Sunastra | 0:d3b2fef75f9c | 83 | |
| Sunastra | 0:d3b2fef75f9c | 84 | else { |
| Sunastra | 0:d3b2fef75f9c | 85 | lcd.printf("Press to start", Sensor.read_u16()); |
| Sunastra | 0:d3b2fef75f9c | 86 | wait(1); |
| Sunastra | 0:d3b2fef75f9c | 87 | lcd.cls(); |
| Sunastra | 0:d3b2fef75f9c | 88 | } |
| Sunastra | 0:d3b2fef75f9c | 89 | } |
| Sunastra | 0:d3b2fef75f9c | 90 | /* |
| Sunastra | 0:d3b2fef75f9c | 91 | if(Sensor.read_u16()>12000 && Sensor.read_u16()< 15000){ |
| Sunastra | 0:d3b2fef75f9c | 92 | lcd.printf("Procedure \n will start"); |
| Sunastra | 0:d3b2fef75f9c | 93 | tick.attach(&ticker, 2.0); |
| Sunastra | 0:d3b2fef75f9c | 94 | } |
| Sunastra | 0:d3b2fef75f9c | 95 | |
| Sunastra | 0:d3b2fef75f9c | 96 | if(Sensor.read_u16()>46000 && Sensor.read_u16()< 48000){ |
| Sunastra | 0:d3b2fef75f9c | 97 | lcd.printf(" * left * "); |
| Sunastra | 0:d3b2fef75f9c | 98 | wait(1); |
| Sunastra | 0:d3b2fef75f9c | 99 | lcd.cls(); |
| Sunastra | 0:d3b2fef75f9c | 100 | } |
| Sunastra | 0:d3b2fef75f9c | 101 | |
| Sunastra | 0:d3b2fef75f9c | 102 | if(Sensor.read_u16()>30000 && Sensor.read_u16()< 32000){ |
| Sunastra | 0:d3b2fef75f9c | 103 | lcd.printf(" * down * "); |
| Sunastra | 0:d3b2fef75f9c | 104 | wait(1); |
| Sunastra | 0:d3b2fef75f9c | 105 | lcd.cls(); |
| Sunastra | 0:d3b2fef75f9c | 106 | } |
| Sunastra | 0:d3b2fef75f9c | 107 | |
| Sunastra | 0:d3b2fef75f9c | 108 | if(Sensor.read_u16()>0 && Sensor.read_u16()< 10000){ |
| Sunastra | 0:d3b2fef75f9c | 109 | lcd.printf(" * right * "); |
| Sunastra | 0:d3b2fef75f9c | 110 | wait(1); |
| Sunastra | 0:d3b2fef75f9c | 111 | lcd.cls(); |
| Sunastra | 0:d3b2fef75f9c | 112 | } |
| Sunastra | 0:d3b2fef75f9c | 113 | |
| Sunastra | 0:d3b2fef75f9c | 114 | else { |
| Sunastra | 0:d3b2fef75f9c | 115 | lcd.printf("Press to start", Sensor.read_u16()); |
| Sunastra | 0:d3b2fef75f9c | 116 | wait(1); |
| Sunastra | 0:d3b2fef75f9c | 117 | lcd.cls(); |
| Sunastra | 0:d3b2fef75f9c | 118 | }*/ |
| Sunastra | 0:d3b2fef75f9c | 119 | |
| Sunastra | 0:d3b2fef75f9c | 120 | |
| Sunastra | 0:d3b2fef75f9c | 121 | } |
| Sunastra | 0:d3b2fef75f9c | 122 | |
| Sunastra | 0:d3b2fef75f9c | 123 | |
| Sunastra | 0:d3b2fef75f9c | 124 |