Práctica 3

Dependencies:   TextLCD mbed

Fork of PR3 by MII1SistElec

Committer:
jon07
Date:
Mon Nov 13 12:42:08 2017 +0000
Revision:
5:18feff1607c9
Parent:
4:71a955ddc240
fgfgfg

Who changed what in which revision?

UserRevisionLine numberNew contents of line
carlospomar 0:73a5b9689b80 1 #include "mbed.h"
jon07 5:18feff1607c9 2 #define period 1/5000
jon07 5:18feff1607c9 3 #define sizeVector 100
jon07 5:18feff1607c9 4 #define Constant (0.000001661707484)
jon07 5:18feff1607c9 5 //USER_BUTTON o PC_13
carlospomar 1:591fea5f363b 6
jon07 5:18feff1607c9 7 InterruptIn button(PC_13);
jon07 5:18feff1607c9 8
jon07 5:18feff1607c9 9 uint32_t vA[sizeVector];
jon07 5:18feff1607c9 10 uint32_t vB[sizeVector];
jon07 5:18feff1607c9 11
jon07 5:18feff1607c9 12 AnalogIn valors(A0);
carlospomar 3:30f1e2f8308c 13
jon07 5:18feff1607c9 14 int counter=0;
jon07 5:18feff1607c9 15 int flag=0;
jon07 5:18feff1607c9 16 int whatVector=0;
jon07 5:18feff1607c9 17 uint64_t sum_values=0;
jon07 5:18feff1607c9 18 float RMS_value=0;
jon07 5:18feff1607c9 19 float Vpp_value=0;
jon07 5:18feff1607c9 20 float Max_value=0;
jon07 5:18feff1607c9 21 float Min_value=1000;
jon07 5:18feff1607c9 22 int state=0;
jon07 5:18feff1607c9 23
jon07 5:18feff1607c9 24 Ticker sample;
jon07 5:18feff1607c9 25 Ticker visualize;
carlospomar 0:73a5b9689b80 26
jon07 5:18feff1607c9 27 void fsample() //??
carlospomar 1:591fea5f363b 28 {
jon07 5:18feff1607c9 29 if (whatVector) {
jon07 5:18feff1607c9 30 vB[counter]=(valors.read_u16()+valors.read_u16()+valors.read_u16()+valors.read_u16())/4;
jon07 5:18feff1607c9 31 }
jon07 5:18feff1607c9 32 else {
jon07 5:18feff1607c9 33 vA[counter]=(valors.read_u16()+valors.read_u16()+valors.read_u16()+valors.read_u16())/4;
jon07 5:18feff1607c9 34 }
jon07 5:18feff1607c9 35 counter++;
jon07 5:18feff1607c9 36 if (counter==100) {
jon07 5:18feff1607c9 37 counter=1;
jon07 5:18feff1607c9 38 flag=1;
jon07 5:18feff1607c9 39 whatVector=!whatVector; //??
carlospomar 0:73a5b9689b80 40 }
carlospomar 0:73a5b9689b80 41 }
jon07 5:18feff1607c9 42 void change() //??
jon07 5:18feff1607c9 43 {
jon07 5:18feff1607c9 44 state=!state;
jon07 5:18feff1607c9 45 }
jon07 5:18feff1607c9 46 void visualiza()
carlospomar 2:0ef1b1712e64 47 {
jon07 5:18feff1607c9 48 if(state){
jon07 5:18feff1607c9 49 printf("RMS value is =%f",RMS_value);
carlospomar 4:71a955ddc240 50 }
jon07 5:18feff1607c9 51 else {
jon07 5:18feff1607c9 52 printf("Vpp value is =%f",Vpp_value);
carlospomar 3:30f1e2f8308c 53 }
carlospomar 4:71a955ddc240 54 }
carlospomar 2:0ef1b1712e64 55
carlospomar 1:591fea5f363b 56 int main()
carlospomar 1:591fea5f363b 57 {
jon07 5:18feff1607c9 58 uint32_t temp;
jon07 5:18feff1607c9 59 sample.attach(&fsample,period); //& para llamar a la función
jon07 5:18feff1607c9 60 visualize.attach(&visualiza,1);
jon07 5:18feff1607c9 61 button.rise(&change);
carlospomar 1:591fea5f363b 62 while(1) {
jon07 5:18feff1607c9 63 if (flag) {
jon07 5:18feff1607c9 64 flag=0;
jon07 5:18feff1607c9 65 sum_values=0;
jon07 5:18feff1607c9 66 if(whatVector) {
jon07 5:18feff1607c9 67
jon07 5:18feff1607c9 68 for(int n=0; n<99; n++) {
jon07 5:18feff1607c9 69 temp=vA[n];
jon07 5:18feff1607c9 70 sum_values=sum_values+temp;
carlospomar 4:71a955ddc240 71
jon07 5:18feff1607c9 72 if(Max_value<temp) {
jon07 5:18feff1607c9 73 Max_value=temp;
jon07 5:18feff1607c9 74 }
jon07 5:18feff1607c9 75 if(Min_value>temp) {
jon07 5:18feff1607c9 76 Min_value=temp;
jon07 5:18feff1607c9 77 }
carlospomar 1:591fea5f363b 78 }
carlospomar 1:591fea5f363b 79 }
jon07 5:18feff1607c9 80 else {
jon07 5:18feff1607c9 81
jon07 5:18feff1607c9 82 for(int n=0; n<99; n++) {
jon07 5:18feff1607c9 83 temp=vB[n];
jon07 5:18feff1607c9 84 sum_values=sum_values+temp;
carlospomar 1:591fea5f363b 85
jon07 5:18feff1607c9 86 if(Max_value<temp) {
jon07 5:18feff1607c9 87 Max_value=temp;
jon07 5:18feff1607c9 88 }
jon07 5:18feff1607c9 89 if(Min_value>temp) {
jon07 5:18feff1607c9 90 Min_value=temp;
jon07 5:18feff1607c9 91 }
jon07 5:18feff1607c9 92 }
jon07 5:18feff1607c9 93 }
jon07 5:18feff1607c9 94 RMS_value=sqrt(Constant*(float)sum_values);
jon07 5:18feff1607c9 95 Vpp_value=Max_value-Min_value;
jon07 5:18feff1607c9 96
jon07 5:18feff1607c9 97 }
carlospomar 1:591fea5f363b 98 }
jon07 5:18feff1607c9 99 }