
ccvcv
Fork of PRACTICA3 by
main.cpp
00001 #include "mbed.h" 00002 #define period 1/5000 00003 #define sizeVector 100 00004 #define Constant (0.000001661707484) 00005 //USER_BUTTON o PC_13 00006 00007 InterruptIn button(PC_13); 00008 00009 uint32_t vA[sizeVector]; 00010 uint32_t vB[sizeVector]; 00011 00012 AnalogIn valors(A0); 00013 00014 int counter=0; 00015 int flag=0; 00016 int whatVector=0; 00017 uint64_t sum_values=0; 00018 float RMS_value=0; 00019 float Vpp_value=0; 00020 float Max_value=0; 00021 float Min_value=1000; 00022 int state=0; 00023 00024 Ticker sample; 00025 Ticker visualize; 00026 00027 void fsample() //?? 00028 { 00029 if (whatVector) { 00030 vB[counter]=(valors.read_u16()+valors.read_u16()+valors.read_u16()+valors.read_u16())/4; 00031 } 00032 else { 00033 vA[counter]=(valors.read_u16()+valors.read_u16()+valors.read_u16()+valors.read_u16())/4; 00034 } 00035 counter++; 00036 if (counter==100) { 00037 counter=1; 00038 flag=1; 00039 whatVector=!whatVector; //?? 00040 } 00041 } 00042 void change() //?? 00043 { 00044 state=!state; 00045 } 00046 void visualiza() 00047 { 00048 if(state){ 00049 printf("RMS value is =%f",RMS_value); 00050 } 00051 else { 00052 printf("Vpp value is =%f",Vpp_value); 00053 } 00054 } 00055 00056 int main() 00057 { 00058 uint32_t temp; 00059 sample.attach(&fsample,period); //& para llamar a la función 00060 visualize.attach(&visualiza,1); 00061 button.rise(&change); 00062 while(1) { 00063 if (flag) { 00064 flag=0; 00065 sum_values=0; 00066 if(whatVector) { 00067 00068 for(int n=0; n<99; n++) { 00069 temp=vA[n]; 00070 sum_values=sum_values+temp; 00071 00072 if(Max_value<temp) { 00073 Max_value=temp; 00074 } 00075 if(Min_value>temp) { 00076 Min_value=temp; 00077 } 00078 } 00079 } 00080 else { 00081 00082 for(int n=0; n<99; n++) { 00083 temp=vB[n]; 00084 sum_values=sum_values+temp; 00085 00086 if(Max_value<temp) { 00087 Max_value=temp; 00088 } 00089 if(Min_value>temp) { 00090 Min_value=temp; 00091 } 00092 } 00093 } 00094 RMS_value=sqrt(Constant*(float)sum_values); 00095 Vpp_value=Max_value-Min_value; 00096 00097 } 00098 } 00099 }
Generated on Wed Dec 19 2018 15:39:24 by
