Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<arduinoPlatform.h>
- #include<tasks.h>
- #include<interrupts.h>
- #include<stdio.h>
- #include<serial.h>
- #include<pwm.h>
- #include<data.h>
- #define PIN 26
- extern serial Serial;
- #define PIN 26
- #define poslednjih_10 10
- int staro_stanje,novo_stanje;
- int pocetno_vreme;
- int proteklo_vreme;
- int vremenski_period; // za ispisivanje vremenskom perioda
- int redni_broj_greske_signala;
- int broj_signala_generisanih;
- int signali[poslednjih_10];
- void prati_gresku(int a,void *b){
- static int first=true; // za preskakanje prvog intervala
- novo_stanje=digitalRead(PIN);
- if(staro_stanje==1 && novo_stanje==0){
- proteklo_vreme=millis()-pocetno_vreme;
- }else if(staro_stanje==0 && novo_stanje==1){
- int vreme=millis();
- vremenski_period=vreme-pocetno_vreme;
- pocetno_vreme=vreme;
- if(!first){
- Serial.print(proteklo_vreme);
- Serial.print(' ');
- Serial.println(vremenski_period);
- signali[broj_signala_generisanih%poslednjih_10]=proteklo_vreme; // stavljam na nultu poziciju taj prvi signal
- if(broj_signala_generisanih>=3){
- int pr1=(broj_signala_generisanih-1)%poslednjih_10;
- int pr2=(broj_signala_generisanih-2)%poslednjih_10;
- if( (signali[pr1]*0.9>proteklo_vreme || signali[pr1]*1.1<proteklo_vreme) &&
- (signali[pr2]*0.9>proteklo_vreme || signali[pr2]*1.1<proteklo_vreme) ){
- redni_broj_greske_signala++;
- Serial.print("Doslo je do greske br:");
- Serial.println(redni_broj_greske_signala);
- Serial.print("Procenat greske");
- Serial.println(redni_broj_greske_signala*100/broj_signala_generisanih);
- }
- }
- broj_signala_generisanih++;
- }
- first=false;
- }
- staro_stanje=novo_stanje;
- }
- void setup()
- {
- Serial.begin(9600);
- pinMode(PIN,OUTPUT);
- pwm(PIN,2000,750,0.2);
- staro_stanje=digitalRead(PIN);
- pocetno_vreme=millis();
- proteklo_vreme=0;
- vremenski_period=0;
- redni_broj_greske_signala=0;
- broj_signala_generisanih=0;
- createTask(prati_gresku,50,TASK_ENABLE,NULL);
- }
- void loop()
- {
- }
Add Comment
Please, Sign In to add comment