
ECG
Dependencies: mbed LCD_DISCO_F746NG BSP_DISCO_F746NG
main.cpp@1:3c739c810aaf, 2021-06-09 (annotated)
- Committer:
- alixhavr10
- Date:
- Wed Jun 09 06:24:21 2021 +0000
- Revision:
- 1:3c739c810aaf
- Parent:
- 0:f5f54c7509b4
ECG_final
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dj444 | 0:f5f54c7509b4 | 1 | #include "mbed.h" |
dj444 | 0:f5f54c7509b4 | 2 | #include "LCD_DISCO_F746NG.h" |
alixhavr10 | 1:3c739c810aaf | 3 | #include <stdio.h> |
dj444 | 0:f5f54c7509b4 | 4 | |
dj444 | 0:f5f54c7509b4 | 5 | |
alixhavr10 | 1:3c739c810aaf | 6 | LCD_DISCO_F746NG lcd; |
alixhavr10 | 1:3c739c810aaf | 7 | DigitalOut led1(LED1); |
alixhavr10 | 1:3c739c810aaf | 8 | AnalogIn mesure_analogique(PA_0); |
alixhavr10 | 1:3c739c810aaf | 9 | PwmOut Buzzer(PA_8); |
alixhavr10 | 1:3c739c810aaf | 10 | DigitalIn mon_bouton(PI_11); |
dj444 | 0:f5f54c7509b4 | 11 | |
dj444 | 0:f5f54c7509b4 | 12 | int main() |
dj444 | 0:f5f54c7509b4 | 13 | { |
alixhavr10 | 1:3c739c810aaf | 14 | float val,time; |
alixhavr10 | 1:3c739c810aaf | 15 | int X, Y,X_max,Y_max,Range; |
alixhavr10 | 1:3c739c810aaf | 16 | int a = mon_bouton.read(); |
alixhavr10 | 1:3c739c810aaf | 17 | char chaine[50]; |
alixhavr10 | 1:3c739c810aaf | 18 | // initialisations |
alixhavr10 | 1:3c739c810aaf | 19 | val=0; |
alixhavr10 | 1:3c739c810aaf | 20 | led1 = 1; |
alixhavr10 | 1:3c739c810aaf | 21 | time=0.2f; |
alixhavr10 | 1:3c739c810aaf | 22 | lcd.Clear(LCD_COLOR_BLACK); |
alixhavr10 | 1:3c739c810aaf | 23 | lcd.SetBackColor(LCD_COLOR_BLACK); |
alixhavr10 | 1:3c739c810aaf | 24 | lcd.SetTextColor(LCD_COLOR_WHITE); |
alixhavr10 | 1:3c739c810aaf | 25 | X_max=lcd.GetXSize(); |
alixhavr10 | 1:3c739c810aaf | 26 | Y_max=lcd.GetYSize(); |
alixhavr10 | 1:3c739c810aaf | 27 | X=0; |
alixhavr10 | 1:3c739c810aaf | 28 | Range=200; |
alixhavr10 | 1:3c739c810aaf | 29 | Y=Y_max-10; |
dj444 | 0:f5f54c7509b4 | 30 | |
alixhavr10 | 1:3c739c810aaf | 31 | while(1) |
alixhavr10 | 1:3c739c810aaf | 32 | { |
alixhavr10 | 1:3c739c810aaf | 33 | val=mesure_analogique.read(); |
alixhavr10 | 1:3c739c810aaf | 34 | val=val*3.3; |
alixhavr10 | 1:3c739c810aaf | 35 | sprintf((char*)chaine,"tension (en V) = %3.3f",val); |
alixhavr10 | 1:3c739c810aaf | 36 | lcd.DisplayStringAt(0, LINE(1), (uint8_t *)&chaine, CENTER_MODE); |
alixhavr10 | 1:3c739c810aaf | 37 | Y=Y_max-Range*val/3.3; |
alixhavr10 | 1:3c739c810aaf | 38 | lcd.DrawPixel(X,Y,LCD_COLOR_WHITE); |
alixhavr10 | 1:3c739c810aaf | 39 | wait_ms(3);//3 ms est la meilleure des valeurs |
alixhavr10 | 1:3c739c810aaf | 40 | X=X+1; |
alixhavr10 | 1:3c739c810aaf | 41 | if(a == 1){ //bouton poussoir non enfoncé |
alixhavr10 | 1:3c739c810aaf | 42 | if(X > X_max) { |
alixhavr10 | 1:3c739c810aaf | 43 | X = 0; |
alixhavr10 | 1:3c739c810aaf | 44 | lcd.Clear(LCD_COLOR_BLACK); |
alixhavr10 | 1:3c739c810aaf | 45 | sprintf((char*)chaine,"tension (en V) = %3.3f",val); |
alixhavr10 | 1:3c739c810aaf | 46 | } |
alixhavr10 | 1:3c739c810aaf | 47 | if(val<=1.9){ |
alixhavr10 | 1:3c739c810aaf | 48 | Buzzer.write(0); |
alixhavr10 | 1:3c739c810aaf | 49 | } |
alixhavr10 | 1:3c739c810aaf | 50 | if(val>=3){ |
alixhavr10 | 1:3c739c810aaf | 51 | Buzzer.write(0); |
alixhavr10 | 1:3c739c810aaf | 52 | } |
alixhavr10 | 1:3c739c810aaf | 53 | if(val<=0.1){ |
alixhavr10 | 1:3c739c810aaf | 54 | Buzzer.pulsewidth(160.0f); |
alixhavr10 | 1:3c739c810aaf | 55 | } |
alixhavr10 | 1:3c739c810aaf | 56 | else{ |
alixhavr10 | 1:3c739c810aaf | 57 | Buzzer.period_ms(10.0f); //pour le son |
alixhavr10 | 1:3c739c810aaf | 58 | //Buzzer.write(0.1f); |
alixhavr10 | 1:3c739c810aaf | 59 | Buzzer.pulsewidth_ms(5.0f); |
alixhavr10 | 1:3c739c810aaf | 60 | } |
alixhavr10 | 1:3c739c810aaf | 61 | } |
alixhavr10 | 1:3c739c810aaf | 62 | else{//bouton poussoir enfoncé obj :figer l'écran |
alixhavr10 | 1:3c739c810aaf | 63 | lcd.DrawPixel(X,Y,LCD_COLOR_WHITE); |
alixhavr10 | 1:3c739c810aaf | 64 | } |
dj444 | 0:f5f54c7509b4 | 65 | } |
alixhavr10 | 1:3c739c810aaf | 66 | } |