Maxime Kmiec / Mbed 2 deprecated PROJECT

Dependencies:   mbed SDFileSystem

Revision:
4:a73ad3555745
diff -r 46c0511e25af -r a73ad3555745 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue May 04 12:30:39 2021 +0000
@@ -0,0 +1,354 @@
+
+#include "mbed.h"
+#include "mbed_genie.h"
+#include "eeprom_flash.h"
+#include "SDFileSystem.h"
+
+Serial pc(USBTX, USBRX);
+DigitalOut myled(LED1);
+
+void enableEEPROMWriting()
+{
+    HAL_StatusTypeDef status = HAL_FLASH_Unlock();
+    FLASH_PageErase(EEPROM_START_ADDRESS);
+    CLEAR_BIT(FLASH->CR, FLASH_CR_PER);
+}
+
+void disableEEPROMWriting()
+{
+    HAL_FLASH_Lock();
+}
+
+HAL_StatusTypeDef writeEEPROMHalfWord(uint32_t address, uint16_t data)
+{
+    HAL_StatusTypeDef status;
+    address = address + EEPROM_START_ADDRESS;
+    status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, address, data);
+    return status;
+}
+
+
+uint16_t readEEPROMHalfWord(uint32_t address)
+{
+    uint16_t val = 0;
+    address = address + EEPROM_START_ADDRESS;
+    val = *(__IO uint16_t*)address;
+    return val;
+}
+
+int flag = 0;
+int chrono0;
+int chrono1;
+int i=0;
+int tab[40];
+int adresse = 0x00;
+int lecture;
+
+void myGenieEventHandler(void)
+{
+    genieFrame Event;
+    genieDequeueEvent(&Event);
+    if(Event.reportObject.cmd == GENIE_REPORT_EVENT) {
+
+        if (Event.reportObject.object == GENIE_OBJ_4DBUTTON) {
+            if (Event.reportObject.index == 0) {
+                wait(0.2);
+                flag=1;
+            }
+            if (Event.reportObject.index == 1) {
+                wait(0.2);
+                flag=0;
+            }
+            if (Event.reportObject.index == 2) {
+                pc.baud(9600);
+                char numberstring[120];
+                int number;
+                SDFileSystem sd(PA_7, PA_6, PA_5, PB_6, "sd");
+                pc.printf("Bienvenu!\n\r");
+                FILE *fp = fopen("/sd/Temps.txt", "r");
+                fgets(numberstring, 120, fp);
+                if(fp == NULL) {
+                    error("Impossible d'ouvrir le fichier pour la lecture\n\r");
+                }
+                sscanf(numberstring, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[0]=number;
+                sscanf(numberstring+3, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[1]=number;
+                sscanf(numberstring+6, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[2]=number;
+                sscanf(numberstring+9, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[3]=number;
+                sscanf(numberstring+12, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[4]=number;
+                sscanf(numberstring+15, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[5]=number;
+                sscanf(numberstring+18, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[6]=number;
+                sscanf(numberstring+21, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[7]=number;
+                sscanf(numberstring+24, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[8]=number;
+                sscanf(numberstring+27, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[9]=number;
+                sscanf(numberstring+30, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[10]=number;
+                sscanf(numberstring+33, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[11]=number;
+                sscanf(numberstring+36, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[12]=number;
+                sscanf(numberstring+39, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[13]=number;
+                sscanf(numberstring+42, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[14]=number;
+                sscanf(numberstring+45, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[15]=number;
+                sscanf(numberstring+48, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[16]=number;
+                sscanf(numberstring+51, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[17]=number;
+                sscanf(numberstring+54, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[18]=number;
+                sscanf(numberstring+57, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[19]=number;
+                sscanf(numberstring+60, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[20]=number;
+                sscanf(numberstring+63, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[21]=number;
+                sscanf(numberstring+66, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[22]=number;
+                sscanf(numberstring+69, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[23]=number;
+                sscanf(numberstring+72, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[24]=number;
+                sscanf(numberstring+75, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[25]=number;
+                sscanf(numberstring+78, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[26]=number;
+                sscanf(numberstring+81, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[27]=number;
+                sscanf(numberstring+84, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[28]=number;
+                sscanf(numberstring+87, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[29]=number;
+                sscanf(numberstring+90, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[30]=number;
+                sscanf(numberstring+93, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[31]=number;
+                sscanf(numberstring+96, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[32]=number;
+                sscanf(numberstring+99, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[33]=number;
+                sscanf(numberstring+102, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[34]=number;
+                sscanf(numberstring+105, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[35]=number;
+                sscanf(numberstring+108, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[36]=number;
+                sscanf(numberstring+111, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[37]=number;
+                sscanf(numberstring+114, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[38]=number;
+                sscanf(numberstring+117, "%d", &number);
+                pc.printf ("%d\n\r", number);
+                tab[39]=number;
+                /* Ecriture*/
+                enableEEPROMWriting(); //autorisation d'ecriture dans l'eeprom
+
+                writeEEPROMHalfWord(adresse, tab[0]);
+                writeEEPROMHalfWord(adresse+2, tab[1]);
+                writeEEPROMHalfWord(adresse+4, tab[2]);
+                writeEEPROMHalfWord(adresse+6, tab[3]);
+                writeEEPROMHalfWord(adresse+8, tab[4]);
+                writeEEPROMHalfWord(adresse+10, tab[5]);
+                writeEEPROMHalfWord(adresse+12, tab[6]);
+                writeEEPROMHalfWord(adresse+14, tab[7]);
+                writeEEPROMHalfWord(adresse+16, tab[8]);
+                writeEEPROMHalfWord(adresse+18, tab[9]);
+                writeEEPROMHalfWord(adresse+20, tab[10]);
+                writeEEPROMHalfWord(adresse+22, tab[11]);
+                writeEEPROMHalfWord(adresse+24, tab[12]);
+                writeEEPROMHalfWord(adresse+26, tab[13]);
+                writeEEPROMHalfWord(adresse+28, tab[14]);
+                writeEEPROMHalfWord(adresse+30, tab[15]);
+                writeEEPROMHalfWord(adresse+32, tab[16]);
+                writeEEPROMHalfWord(adresse+34, tab[17]);
+                writeEEPROMHalfWord(adresse+36, tab[18]);
+                writeEEPROMHalfWord(adresse+38, tab[19]);
+                writeEEPROMHalfWord(adresse+40, tab[20]);
+                writeEEPROMHalfWord(adresse+42, tab[21]);
+                writeEEPROMHalfWord(adresse+44, tab[22]);
+                writeEEPROMHalfWord(adresse+46, tab[23]);
+                writeEEPROMHalfWord(adresse+48, tab[24]);
+                writeEEPROMHalfWord(adresse+50, tab[25]);
+                writeEEPROMHalfWord(adresse+52, tab[26]);
+                writeEEPROMHalfWord(adresse+54, tab[27]);
+                writeEEPROMHalfWord(adresse+56, tab[28]);
+                writeEEPROMHalfWord(adresse+58, tab[29]);
+                writeEEPROMHalfWord(adresse+60, tab[30]);
+                writeEEPROMHalfWord(adresse+62, tab[31]);
+                writeEEPROMHalfWord(adresse+64, tab[32]);
+                writeEEPROMHalfWord(adresse+66, tab[33]);
+                writeEEPROMHalfWord(adresse+68, tab[34]);
+                writeEEPROMHalfWord(adresse+70, tab[35]);
+                writeEEPROMHalfWord(adresse+72, tab[36]);
+                writeEEPROMHalfWord(adresse+74, tab[37]);
+                writeEEPROMHalfWord(adresse+76, tab[38]);
+                writeEEPROMHalfWord(adresse+78, tab[39]);
+                disableEEPROMWriting(); //Interdiction d'ecriture
+
+                /*lecture et affichage*/
+                lecture=readEEPROMHalfWord(adresse);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+2);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+4);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+6);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+8);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+10);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+12);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+14);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+16);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+18);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+20);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+22);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+24);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+26);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+28);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+30);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+32);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+34);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+36);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+38);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+40);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+42);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+44);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+46);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+48);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+50);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+52);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+54);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+56);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+58);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+60);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+62);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+64);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+66);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+68);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+70);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+72);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+74);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+76);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+                lecture=readEEPROMHalfWord(adresse+78);
+                pc.printf ("valeur lue: %d\n\r",lecture);
+
+            }
+        }
+    }
+}
+
+int main()
+
+{
+    SetupGenie();
+    genieAttachEventHandler(&myGenieEventHandler);
+    genieWriteContrast(15);
+
+    while(1) {
+
+        if (flag == 1) {
+            printf("%d",flag); 
+            genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x00, chrono0);
+            genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x01, chrono1);
+            chrono0=chrono0-1;
+            chrono1=chrono1+1;
+            wait (1);
+            if(chrono0==0) {
+                chrono0=tab[i];
+                printf("%d\n\r",chrono0);
+                i=i+1;
+            }
+            }
+        else if(flag == 0) {
+            genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x00, 0);
+            genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x01, 0);
+            chrono0=tab[i];
+            wait (0.2);
+        }
+    }
+}