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.
Dependencies: mbed SDFileSystem
main.cpp
- Committer:
- adragar
- Date:
- 2021-05-04
- Revision:
- 4:a73ad3555745
File content as of revision 4:a73ad3555745:
#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); } } }