Premier programme
Dependencies: mbed ssd1306_library
main.cpp@0:6f9bc81b107c, 2021-03-15 (annotated)
- Committer:
- emmanueldavid
- Date:
- Mon Mar 15 13:44:36 2021 +0000
- Revision:
- 0:6f9bc81b107c
Premier programme mbed
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
emmanueldavid | 0:6f9bc81b107c | 1 | /* |
emmanueldavid | 0:6f9bc81b107c | 2 | * Premier programme mbed pour carte Nucleo F303K8 |
emmanueldavid | 0:6f9bc81b107c | 3 | * E. DAVID |
emmanueldavid | 0:6f9bc81b107c | 4 | */ |
emmanueldavid | 0:6f9bc81b107c | 5 | |
emmanueldavid | 0:6f9bc81b107c | 6 | #include "mbed.h" |
emmanueldavid | 0:6f9bc81b107c | 7 | #include "ssd1306.h" |
emmanueldavid | 0:6f9bc81b107c | 8 | |
emmanueldavid | 0:6f9bc81b107c | 9 | SSD1306 OLED (I2C_SDA, I2C_SCL); // assumes default I2C address of 0x78 |
emmanueldavid | 0:6f9bc81b107c | 10 | |
emmanueldavid | 0:6f9bc81b107c | 11 | |
emmanueldavid | 0:6f9bc81b107c | 12 | Ticker Timer1; |
emmanueldavid | 0:6f9bc81b107c | 13 | |
emmanueldavid | 0:6f9bc81b107c | 14 | DigitalOut ledD9(PA_4); |
emmanueldavid | 0:6f9bc81b107c | 15 | DigitalOut ledD8(PA_5); |
emmanueldavid | 0:6f9bc81b107c | 16 | DigitalOut ledD7(PA_6); |
emmanueldavid | 0:6f9bc81b107c | 17 | DigitalOut ledD6(PA_7); |
emmanueldavid | 0:6f9bc81b107c | 18 | |
emmanueldavid | 0:6f9bc81b107c | 19 | AnalogIn adc_A0(PA_0); |
emmanueldavid | 0:6f9bc81b107c | 20 | |
emmanueldavid | 0:6f9bc81b107c | 21 | DigitalIn SW4_1(PA_1); |
emmanueldavid | 0:6f9bc81b107c | 22 | DigitalIn SW4_2(PA_3); |
emmanueldavid | 0:6f9bc81b107c | 23 | |
emmanueldavid | 0:6f9bc81b107c | 24 | InterruptIn SW1(PB_4, PullUp); |
emmanueldavid | 0:6f9bc81b107c | 25 | |
emmanueldavid | 0:6f9bc81b107c | 26 | Serial pc(USBTX, USBRX); |
emmanueldavid | 0:6f9bc81b107c | 27 | |
emmanueldavid | 0:6f9bc81b107c | 28 | char counter = 0; |
emmanueldavid | 0:6f9bc81b107c | 29 | |
emmanueldavid | 0:6f9bc81b107c | 30 | |
emmanueldavid | 0:6f9bc81b107c | 31 | void Timer_Envoi() { |
emmanueldavid | 0:6f9bc81b107c | 32 | pc.printf("Envoi Timer \n"); |
emmanueldavid | 0:6f9bc81b107c | 33 | } |
emmanueldavid | 0:6f9bc81b107c | 34 | |
emmanueldavid | 0:6f9bc81b107c | 35 | void AppuiSW1() { |
emmanueldavid | 0:6f9bc81b107c | 36 | ledD6 = 0; |
emmanueldavid | 0:6f9bc81b107c | 37 | ledD7 = 0; |
emmanueldavid | 0:6f9bc81b107c | 38 | } |
emmanueldavid | 0:6f9bc81b107c | 39 | |
emmanueldavid | 0:6f9bc81b107c | 40 | int main() |
emmanueldavid | 0:6f9bc81b107c | 41 | { |
emmanueldavid | 0:6f9bc81b107c | 42 | pc.baud(115200); |
emmanueldavid | 0:6f9bc81b107c | 43 | pc.printf("main()\n"); |
emmanueldavid | 0:6f9bc81b107c | 44 | |
emmanueldavid | 0:6f9bc81b107c | 45 | // Utilisation d'un timer : appel de la fonction Timer_Envoi() toutes les 2s |
emmanueldavid | 0:6f9bc81b107c | 46 | Timer1.attach(&Timer_Envoi, 2.0); |
emmanueldavid | 0:6f9bc81b107c | 47 | |
emmanueldavid | 0:6f9bc81b107c | 48 | OLED.speed (SSD1306::Medium); // set working frequency |
emmanueldavid | 0:6f9bc81b107c | 49 | OLED.init(); // initialize SSD1306 |
emmanueldavid | 0:6f9bc81b107c | 50 | OLED.cls(); // clear frame buffer |
emmanueldavid | 0:6f9bc81b107c | 51 | OLED.locate (0,0); // set text cursor to line 3, column 1 |
emmanueldavid | 0:6f9bc81b107c | 52 | OLED.printf ("GEII"); // print to frame buffer |
emmanueldavid | 0:6f9bc81b107c | 53 | OLED.redraw(); // updates actual display transferring frame buffer over I2C bus |
emmanueldavid | 0:6f9bc81b107c | 54 | |
emmanueldavid | 0:6f9bc81b107c | 55 | ledD9 = 1; |
emmanueldavid | 0:6f9bc81b107c | 56 | ledD8 = 1; |
emmanueldavid | 0:6f9bc81b107c | 57 | |
emmanueldavid | 0:6f9bc81b107c | 58 | // Validation de l'interruption sur un front descendant de SW1 |
emmanueldavid | 0:6f9bc81b107c | 59 | // appel de la routine d'interruption AppuiSW1() |
emmanueldavid | 0:6f9bc81b107c | 60 | SW1.fall(&AppuiSW1); |
emmanueldavid | 0:6f9bc81b107c | 61 | |
emmanueldavid | 0:6f9bc81b107c | 62 | while (1) { |
emmanueldavid | 0:6f9bc81b107c | 63 | OLED.locate (2,0); |
emmanueldavid | 0:6f9bc81b107c | 64 | OLED.printf("ADC A0=%2.1f", (adc_A0.read()*100)); |
emmanueldavid | 0:6f9bc81b107c | 65 | OLED.redraw(); |
emmanueldavid | 0:6f9bc81b107c | 66 | ledD6 = !ledD6; |
emmanueldavid | 0:6f9bc81b107c | 67 | wait(2.0); |
emmanueldavid | 0:6f9bc81b107c | 68 | } |
emmanueldavid | 0:6f9bc81b107c | 69 | } |