Atope
/
PRACTICA3
ccvcv
Fork of PRACTICA3 by
main.cpp@5:18feff1607c9, 2017-11-13 (annotated)
- Committer:
- jon07
- Date:
- Mon Nov 13 12:42:08 2017 +0000
- Revision:
- 5:18feff1607c9
- Parent:
- 4:71a955ddc240
fgfgfg
Who changed what in which revision?
User | Revision | Line number | New 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 | } |