Premier programme

Dependencies:   mbed ssd1306_library

Committer:
emmanueldavid
Date:
Mon Mar 15 13:44:36 2021 +0000
Revision:
0:6f9bc81b107c
Premier programme mbed

Who changed what in which revision?

UserRevisionLine numberNew 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 }