FabLab Nîmes / Mbed 2 deprecated FabLab_I2C

Dependencies:   mbed

Committer:
Giamarchi
Date:
Thu Apr 21 17:22:06 2022 +0000
Revision:
3:4ec898e0b61a
I2C EEPROM Test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Giamarchi 3:4ec898e0b61a 1 //==============================================================================
Giamarchi 3:4ec898e0b61a 2 // Fichier : fonctions.h
Giamarchi 3:4ec898e0b61a 3 //
Giamarchi 3:4ec898e0b61a 4 // Description de fonctions utilisées pour la station météo
Giamarchi 3:4ec898e0b61a 5 //==============================================================================
Giamarchi 3:4ec898e0b61a 6 #include "mbed.h"
Giamarchi 3:4ec898e0b61a 7 // Déclaration des variables et des constantes
Giamarchi 3:4ec898e0b61a 8
Giamarchi 3:4ec898e0b61a 9 InterruptIn Anem(PB_4); // La ligne est déclarée en interruption
Giamarchi 3:4ec898e0b61a 10 Timer Fenetre_Temps; // Déclaration d'un compteur
Giamarchi 3:4ec898e0b61a 11
Giamarchi 3:4ec898e0b61a 12 uint16_t nombre;
Giamarchi 3:4ec898e0b61a 13
Giamarchi 3:4ec898e0b61a 14 void ISR_Compteur(void) // Fonction d'interruption (Interrupt Sub Routine)
Giamarchi 3:4ec898e0b61a 15 {
Giamarchi 3:4ec898e0b61a 16 nombre++; // Compte le nombre de rotation de l'axe
Giamarchi 3:4ec898e0b61a 17 }
Giamarchi 3:4ec898e0b61a 18
Giamarchi 3:4ec898e0b61a 19 void Init_Fonctions(void)
Giamarchi 3:4ec898e0b61a 20 {
Giamarchi 3:4ec898e0b61a 21 Anem.mode(PullUp); // Activation résistance de Pullup
Giamarchi 3:4ec898e0b61a 22 Fenetre_Temps.start(); // Déclenche le timer
Giamarchi 3:4ec898e0b61a 23 Anem.rise(&ISR_Compteur); // Interruption sur front montant
Giamarchi 3:4ec898e0b61a 24 Anem.fall(&ISR_Compteur);
Giamarchi 3:4ec898e0b61a 25 }
Giamarchi 3:4ec898e0b61a 26 //==============================================================================
Giamarchi 3:4ec898e0b61a 27 // Fonction : Girouette
Giamarchi 3:4ec898e0b61a 28 // Entrée : Pas de paramètres en entrée
Giamarchi 3:4ec898e0b61a 29 // Sortie : vitesse du vent en 16bits
Giamarchi 3:4ec898e0b61a 30
Giamarchi 3:4ec898e0b61a 31 // this function has 63 bytes write limit
Giamarchi 3:4ec898e0b61a 32 void writeEEPROM(int address, unsigned int eeaddress, char *data, int size)
Giamarchi 3:4ec898e0b61a 33 {
Giamarchi 3:4ec898e0b61a 34 char i2cBuffer[size + 2];
Giamarchi 3:4ec898e0b61a 35 i2cBuffer[0] = (unsigned char)(eeaddress >> 8); // MSB
Giamarchi 3:4ec898e0b61a 36 i2cBuffer[1] = (unsigned char)(eeaddress & 0xFF); // LSB
Giamarchi 3:4ec898e0b61a 37
Giamarchi 3:4ec898e0b61a 38 for (int i = 0; i < size; i++) {
Giamarchi 3:4ec898e0b61a 39 i2cBuffer[i + 2] = data[i];
Giamarchi 3:4ec898e0b61a 40 }
Giamarchi 3:4ec898e0b61a 41
Giamarchi 3:4ec898e0b61a 42 int result = i2c.write(address, i2cBuffer, size + 2, false);
Giamarchi 3:4ec898e0b61a 43 wait_ms(6);
Giamarchi 3:4ec898e0b61a 44 }
Giamarchi 3:4ec898e0b61a 45
Giamarchi 3:4ec898e0b61a 46 // Nucleo - L432KC - L031K6
Giamarchi 3:4ec898e0b61a 47
Giamarchi 3:4ec898e0b61a 48 // PA_9 Vin
Giamarchi 3:4ec898e0b61a 49 // PA_10 Gnd
Giamarchi 3:4ec898e0b61a 50 // NRST NRST
Giamarchi 3:4ec898e0b61a 51 // Gnd 5V
Giamarchi 3:4ec898e0b61a 52 // PA_12 PA_2
Giamarchi 3:4ec898e0b61a 53 // PB_0 PA_7
Giamarchi 3:4ec898e0b61a 54 // PB_7 SDA PA_6
Giamarchi 3:4ec898e0b61a 55 // PB_6 SCL PA_5
Giamarchi 3:4ec898e0b61a 56 // PB_1 PA_4
Giamarchi 3:4ec898e0b61a 57 // NC PA_3
Giamarchi 3:4ec898e0b61a 58 // NC PA_1
Giamarchi 3:4ec898e0b61a 59 // PA_8 PA_0 AN0
Giamarchi 3:4ec898e0b61a 60 // PA_11 Aref
Giamarchi 3:4ec898e0b61a 61 // PB_5 3V3
Giamarchi 3:4ec898e0b61a 62 // PB_4 PB_3