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

Committer:
lucas_favre
Date:
Tue Mar 29 20:46:56 2016 +0000
Revision:
7:48800c84346c
Parent:
4:f0cbc6c47b11
Ajout du menu

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lucas_favre 1:4659469cc20d 1 /*
lucas_favre 1:4659469cc20d 2 * MyLab.h
lucas_favre 1:4659469cc20d 3 *
lucas_favre 1:4659469cc20d 4 *
lucas_favre 1:4659469cc20d 5 * Author: Favre Lucas
lucas_favre 1:4659469cc20d 6 */
lucas_favre 1:4659469cc20d 7
lucas_favre 1:4659469cc20d 8 #ifndef MYLAB_LIB_MYLAB_H_
lucas_favre 1:4659469cc20d 9 #define MYLAB_LIB_MYLAB_H_
lucas_favre 1:4659469cc20d 10 #include "MMA7660FC.h"
lucas_favre 1:4659469cc20d 11 #include "C12832.h"
lucas_favre 4:f0cbc6c47b11 12
lucas_favre 1:4659469cc20d 13 #include "mbed.h"
lucas_favre 1:4659469cc20d 14
lucas_favre 1:4659469cc20d 15 #define NUMDAT 10000
lucas_favre 1:4659469cc20d 16 #define DLY 250
lucas_favre 1:4659469cc20d 17
lucas_favre 4:f0cbc6c47b11 18 #define ADDR_MMA7660 (0x4C << 1) // Addresse esclave de l'accéléromètre MMA7660FC
lucas_favre 1:4659469cc20d 19
lucas_favre 1:4659469cc20d 20 extern MMA7660FC Acc;
lucas_favre 1:4659469cc20d 21 extern Serial ser;
lucas_favre 4:f0cbc6c47b11 22 extern C12832 lcd;
lucas_favre 4:f0cbc6c47b11 23
lucas_favre 1:4659469cc20d 24 extern BusOut leds;
lucas_favre 1:4659469cc20d 25
lucas_favre 4:f0cbc6c47b11 26
lucas_favre 1:4659469cc20d 27 class MyLab {
lucas_favre 1:4659469cc20d 28 public:
lucas_favre 1:4659469cc20d 29 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);
lucas_favre 1:4659469cc20d 30 void JoyStick_Position(char pos[]);
lucas_favre 1:4659469cc20d 31 short * Sound_Record(short * dat);
lucas_favre 1:4659469cc20d 32 void Sound_Play(short * buffer);
lucas_favre 1:4659469cc20d 33 void PlayNote(float frequency, float duration, float volume);
lucas_favre 1:4659469cc20d 34 float Luminosity_Mesure();
lucas_favre 7:48800c84346c 35 int setMenu();
lucas_favre 7:48800c84346c 36 void printMenu(int menuitem);
lucas_favre 1:4659469cc20d 37 float Acc_X_Mesure();
lucas_favre 1:4659469cc20d 38 float Acc_Y_Mesure();
lucas_favre 1:4659469cc20d 39 float Acc_Z_Mesure();
lucas_favre 1:4659469cc20d 40 float val_lumi;
lucas_favre 1:4659469cc20d 41 float val_x;
lucas_favre 1:4659469cc20d 42 float val_y;
lucas_favre 1:4659469cc20d 43 float val_z;
lucas_favre 7:48800c84346c 44 short dat[NUMDAT];
lucas_favre 7:48800c84346c 45 char* joystickPos ;
lucas_favre 7:48800c84346c 46 int select_app ;
lucas_favre 7:48800c84346c 47 int menuItem ;
lucas_favre 1:4659469cc20d 48
lucas_favre 1:4659469cc20d 49 private:
lucas_favre 1:4659469cc20d 50 // Définitions des objets utiles pour la carte MyLab
lucas_favre 1:4659469cc20d 51 BusIn _joystick;
lucas_favre 1:4659469cc20d 52 AnalogIn _micro;
lucas_favre 1:4659469cc20d 53 AnalogOut _speaker;
lucas_favre 1:4659469cc20d 54 AnalogIn _r;
lucas_favre 1:4659469cc20d 55 AnalogIn _g;
lucas_favre 1:4659469cc20d 56 AnalogIn _b;
lucas_favre 1:4659469cc20d 57
lucas_favre 1:4659469cc20d 58
lucas_favre 1:4659469cc20d 59 //Timer utilise pour l'echantillonage lors d'une interruption
lucas_favre 1:4659469cc20d 60 Ticker Sample_Period;
lucas_favre 1:4659469cc20d 61
lucas_favre 1:4659469cc20d 62 //Variable utile pour l'interruptione et la fonction PlayNote
lucas_favre 1:4659469cc20d 63 volatile int s;
lucas_favre 1:4659469cc20d 64 short unsigned Analog_out_data[32];
lucas_favre 1:4659469cc20d 65 short unsigned Analog_scaled_data[32];
lucas_favre 1:4659469cc20d 66
lucas_favre 1:4659469cc20d 67 //Variable utile pour les données accéléromètre et luminosité
lucas_favre 1:4659469cc20d 68 float r,g,b;
lucas_favre 1:4659469cc20d 69 int result;
lucas_favre 1:4659469cc20d 70 float micCB;
lucas_favre 1:4659469cc20d 71
lucas_favre 1:4659469cc20d 72
lucas_favre 1:4659469cc20d 73 // Routine d'interruption
lucas_favre 1:4659469cc20d 74 // pour l'écriture analogique sur la sortie audio lors de la
lucas_favre 1:4659469cc20d 75 // lecture d'un enregistrement
lucas_favre 1:4659469cc20d 76
lucas_favre 1:4659469cc20d 77 void Sample_timer_interrupt(void) {
lucas_favre 1:4659469cc20d 78 _speaker.write_u16(Analog_scaled_data[s]);
lucas_favre 1:4659469cc20d 79 s = (s+1) & 0x01F;
lucas_favre 1:4659469cc20d 80 }
lucas_favre 1:4659469cc20d 81 };
lucas_favre 1:4659469cc20d 82
lucas_favre 1:4659469cc20d 83
lucas_favre 1:4659469cc20d 84
lucas_favre 1:4659469cc20d 85 #endif /* MYLAB_LIB_MYLAB_H_ */