Librairie contenant les fonctions nécessaires pour pouvoir contrôler les différents composants de la carte d'extension MyLab
Dependencies: MMA7660FC LCD_lib
MyLab_Lib.h@1:4659469cc20d, 2016-03-29 (annotated)
- Committer:
- lucas_favre
- Date:
- Tue Mar 29 18:28:42 2016 +0000
- Revision:
- 1:4659469cc20d
- Child:
- 4:f0cbc6c47b11
Ajout de la librairie pour ?cran 128x32;
Who changed what in which revision?
User | Revision | Line number | New 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 | 1:4659469cc20d | 12 | #include "mbed.h" |
lucas_favre | 1:4659469cc20d | 13 | |
lucas_favre | 1:4659469cc20d | 14 | #define NUMDAT 10000 |
lucas_favre | 1:4659469cc20d | 15 | #define DLY 250 |
lucas_favre | 1:4659469cc20d | 16 | |
lucas_favre | 1:4659469cc20d | 17 | #define ADDR_MMA7670FC (0x4C << 1) // Addresse esclave de l'accéléromètre MMA7660FC |
lucas_favre | 1:4659469cc20d | 18 | |
lucas_favre | 1:4659469cc20d | 19 | extern MMA7660FC Acc; |
lucas_favre | 1:4659469cc20d | 20 | extern Serial ser; |
lucas_favre | 1:4659469cc20d | 21 | extern C123832 lcd; |
lucas_favre | 1:4659469cc20d | 22 | extern MyLab periph; |
lucas_favre | 1:4659469cc20d | 23 | extern BusOut leds; |
lucas_favre | 1:4659469cc20d | 24 | |
lucas_favre | 1:4659469cc20d | 25 | class MyLab { |
lucas_favre | 1:4659469cc20d | 26 | public: |
lucas_favre | 1:4659469cc20d | 27 | 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 | 28 | void JoyStick_Position(char pos[]); |
lucas_favre | 1:4659469cc20d | 29 | short * Sound_Record(short * dat); |
lucas_favre | 1:4659469cc20d | 30 | void Sound_Play(short * buffer); |
lucas_favre | 1:4659469cc20d | 31 | void PlayNote(float frequency, float duration, float volume); |
lucas_favre | 1:4659469cc20d | 32 | float Luminosity_Mesure(); |
lucas_favre | 1:4659469cc20d | 33 | float Acc_X_Mesure(); |
lucas_favre | 1:4659469cc20d | 34 | float Acc_Y_Mesure(); |
lucas_favre | 1:4659469cc20d | 35 | float Acc_Z_Mesure(); |
lucas_favre | 1:4659469cc20d | 36 | float val_lumi; |
lucas_favre | 1:4659469cc20d | 37 | float val_x; |
lucas_favre | 1:4659469cc20d | 38 | float val_y; |
lucas_favre | 1:4659469cc20d | 39 | float val_z; |
lucas_favre | 1:4659469cc20d | 40 | |
lucas_favre | 1:4659469cc20d | 41 | private: |
lucas_favre | 1:4659469cc20d | 42 | // Définitions des objets utiles pour la carte MyLab |
lucas_favre | 1:4659469cc20d | 43 | BusIn _joystick; |
lucas_favre | 1:4659469cc20d | 44 | AnalogIn _micro; |
lucas_favre | 1:4659469cc20d | 45 | AnalogOut _speaker; |
lucas_favre | 1:4659469cc20d | 46 | AnalogIn _r; |
lucas_favre | 1:4659469cc20d | 47 | AnalogIn _g; |
lucas_favre | 1:4659469cc20d | 48 | AnalogIn _b; |
lucas_favre | 1:4659469cc20d | 49 | |
lucas_favre | 1:4659469cc20d | 50 | |
lucas_favre | 1:4659469cc20d | 51 | //Timer utilise pour l'echantillonage lors d'une interruption |
lucas_favre | 1:4659469cc20d | 52 | Ticker Sample_Period; |
lucas_favre | 1:4659469cc20d | 53 | |
lucas_favre | 1:4659469cc20d | 54 | //Variable utile pour l'interruptione et la fonction PlayNote |
lucas_favre | 1:4659469cc20d | 55 | volatile int s; |
lucas_favre | 1:4659469cc20d | 56 | short unsigned Analog_out_data[32]; |
lucas_favre | 1:4659469cc20d | 57 | short unsigned Analog_scaled_data[32]; |
lucas_favre | 1:4659469cc20d | 58 | |
lucas_favre | 1:4659469cc20d | 59 | //Variable utile pour les données accéléromètre et luminosité |
lucas_favre | 1:4659469cc20d | 60 | float r,g,b; |
lucas_favre | 1:4659469cc20d | 61 | int result; |
lucas_favre | 1:4659469cc20d | 62 | float micCB; |
lucas_favre | 1:4659469cc20d | 63 | |
lucas_favre | 1:4659469cc20d | 64 | |
lucas_favre | 1:4659469cc20d | 65 | // Routine d'interruption |
lucas_favre | 1:4659469cc20d | 66 | // pour l'écriture analogique sur la sortie audio lors de la |
lucas_favre | 1:4659469cc20d | 67 | // lecture d'un enregistrement |
lucas_favre | 1:4659469cc20d | 68 | |
lucas_favre | 1:4659469cc20d | 69 | void Sample_timer_interrupt(void) { |
lucas_favre | 1:4659469cc20d | 70 | _speaker.write_u16(Analog_scaled_data[s]); |
lucas_favre | 1:4659469cc20d | 71 | s = (s+1) & 0x01F; |
lucas_favre | 1:4659469cc20d | 72 | } |
lucas_favre | 1:4659469cc20d | 73 | }; |
lucas_favre | 1:4659469cc20d | 74 | |
lucas_favre | 1:4659469cc20d | 75 | |
lucas_favre | 1:4659469cc20d | 76 | |
lucas_favre | 1:4659469cc20d | 77 | #endif /* MYLAB_LIB_MYLAB_H_ */ |