Librairie contenant les fonctions nécessaires pour pouvoir contrôler les différents composants de la carte d'extension MyLab

Dependencies:   MMA7660FC LCD_lib

Dependents:   Example_MyLab_lib

Revision:
1:4659469cc20d
Child:
4:f0cbc6c47b11
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MyLab_Lib.h	Tue Mar 29 18:28:42 2016 +0000
@@ -0,0 +1,77 @@
+/*
+ * MyLab.h
+ *
+ * 
+ *      Author: Favre Lucas
+ */
+
+#ifndef MYLAB_LIB_MYLAB_H_
+#define MYLAB_LIB_MYLAB_H_
+#include "MMA7660FC.h"
+#include "C12832.h"
+#include "mbed.h"
+
+#define NUMDAT 10000
+#define DLY 250
+
+#define ADDR_MMA7670FC (0x4C << 1) // Addresse esclave de l'accéléromètre MMA7660FC
+
+extern MMA7660FC Acc;
+extern Serial ser;
+extern C123832 lcd;
+extern MyLab periph;
+extern BusOut leds;
+
+class MyLab {
+public:
+    MyLab(PinName Joy_n,PinName Joy_c,PinName Joy_s,PinName Joy_e,PinName Joy_w,PinName mic,PinName speaker,PinName capt_r,PinName capt_g,PinName capt_b);
+    void JoyStick_Position(char pos[]);
+    short * Sound_Record(short * dat);
+    void Sound_Play(short * buffer);
+    void PlayNote(float frequency, float duration, float volume);
+    float Luminosity_Mesure();
+    float Acc_X_Mesure();
+    float Acc_Y_Mesure();
+    float Acc_Z_Mesure();
+    float val_lumi;
+    float val_x;
+    float val_y;
+    float val_z;
+
+private:
+    // Définitions des objets utiles pour la carte MyLab
+    BusIn _joystick;
+    AnalogIn _micro;
+    AnalogOut _speaker;
+    AnalogIn _r;
+    AnalogIn _g;
+    AnalogIn _b;
+    
+    
+    //Timer utilise pour l'echantillonage lors d'une interruption
+    Ticker Sample_Period;
+
+    //Variable utile pour l'interruptione et la fonction PlayNote
+    volatile int s;
+    short unsigned Analog_out_data[32];
+    short unsigned Analog_scaled_data[32];
+    
+    //Variable utile pour les données accéléromètre et luminosité
+    float r,g,b;
+    int result;
+    float micCB;
+
+
+    // Routine d'interruption 
+    // pour l'écriture analogique sur la sortie audio lors de la
+    // lecture d'un enregistrement
+    
+    void Sample_timer_interrupt(void) {
+        _speaker.write_u16(Analog_scaled_data[s]);
+        s = (s+1) & 0x01F;
+    }
+};
+
+
+
+#endif /* MYLAB_LIB_MYLAB_H_ */