Timer/Counter mit MKR WiFi 1010 richtig konfigurieren

Hallo Arduino User´s,

ich bin gerade dabei eine Gartenbewässerungsanlage zu installieren.
Als Steuerung würde ich gerne den Arduino MKR WiFi 1010 verwenden.
Der Feuchtigkeit-Sensor arbeitet kapazitiv und gibt als Output ein Frequenzsignal zwischen 50kHz und 500kHz aus.
Zum testen der Sensoren habe ich den Arduino UNO verwendet. Mit folgenden Code.

const int ledPin = 13;
unsigned int freq;

void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
  //hardware counter setup
  TCCR1A = 0; // reset timer/counter control register

}

void loop() {
  
  // put your main code here, to run repeatedly:
  freq = 0;
 
  digitalWrite(ledPin, LOW);
  delay(200);
  digitalWrite(ledPin, HIGH);

  // start the counting
  bitSet(TCCR1B, CS12); // Counter clock source is external pin
  bitSet(TCCR1B, CS11); // Clock on rising edge
  delay(40);  // wait 40ms
  // stop the counting
  TCCR1B = 0;
  freq = TCNT1/4; // devide by 4 to get number of oscillations per 10ms
  TCNT1 = 0; // reset the hardware counter
  
  Serial.println(freq);
}

Das selbe würde ich nun gerne mit dem MKR-Board realisieren. Nur leider komm ich mit der Timer bzw. Counter Konfiguration gar nicht zurecht.
Hat von euch schon jemand mit timer/counter auf den MKR boards was realisiert?
Es wäre sehr nett wenn mir jemand hierzu weiterhelfen könnte.
Besten Dank!

Hallo,

du misst irgendwas internen, auf jeden Fall keinen Takt von extern. Datenblatt vom ATmega328P anschauen und nachschauen welche Prescaler Einstellungen notwendig sind.

Ein Tipp, man muss alle Timerregister löschen bevor man eigene Konfigurationen vornimmt, weil die für PWM analog vorbelegt sind.

TCCR1B = 0;             // Resets
TCCR1A = 0;             //
TIMSK1 = 0;             //
TCNT1  = 0;             //

deine Konfig ...
...

Auf dem MKR WiFi 1010 steckt ein ARM µC namens: SAMD21

Es ist also eine ganz anderes Welt, als die AVR Timer.

Auch hier gilt: Die Wahrheit steht im SAMD21 Datenblatt