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

MyLab_Lib.h

Committer:
lucas_favre
Date:
2016-03-29
Revision:
1:4659469cc20d
Child:
4:f0cbc6c47b11

File content as of revision 1:4659469cc20d:

/*
 * 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_ */