Show Posts
Pages: [1]
1  International / Software / Re: frequenzimetro on: November 30, 2012, 07:09:02 am
Grazie Tonid,
però non hai considerato una cosa:
Se diminuisci il valore di s, ad esempio lo porti alla metà,
diminuisce proporzionalmente c, ma diminuisce anche t in proporzione,
quindi alla fine la f calcolata dovrebbe non cambiare...
2  International / Software / frequenzimetro on: November 28, 2012, 10:44:15 am
Ho usato il seguente programma per calcolare la frequenza:

int sigPin = 47; //signal pin
int state; //the state of the input
int oldstate;
unsigned long t; //timer
unsigned long s; //samples
unsigned long c; //count
unsigned long f; //frequency


void setup()
{
  pinMode(sigPin, INPUT);
  pinMode(DAC0, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  c = 0;

   t = micros(); // read time at start of sampling
   for(s=0; s<1000; s++){ //take a number of samples
   state = digitalRead(sigPin); //read state
   if (state != oldstate){ //if state changes:
      c++; //increment counter
      oldstate = state; //and reset current state
   }

   }
   t = micros() - t; //read time at end of sampling

   c = c/2; // need to divide by 2 because counter incremented on each change - two changes per cycle

   f = 1000000*c/t; //calculate frequency
  analogWriteResolution(12);
  analogWrite(DAC0, map(f, 0, 1023, 0 ,4095));
  Serial.print(" , 12-bit PWM value : ");
  Serial.print(map(f, 0, 1023, 0 ,4095));

  Serial.println("\n frequenza");
  Serial.println(f);
  delay(500);
 
}


quello che non capisco e` perche` cambiando il valore di s, mi cambia anche la frequenza che mi legge ? io devo calcolare frequenze che arrivano a max 200 kHz. Uso questo programma perche` avendo arduino due non posso mettere le librerie FreqCount e FreqCounter; essendo il nuovo microcontrollore AT91SAM3X differente dagli altri microcontrollori ed ha registri timer counter diversi. Ho provato a cercare di modificare la libreria ma il nuovo microcontrollore ha pochissimi registri, qualcuno sa` come modificarla o farne una nuova con i registri del AT91SAM3X ?
Pages: [1]