Libreria RBD_Timer, control de frecuencia de desbordamiento

Hola a todos, necesitaria la ayuda y experiencia de ustedes con el objetivo de resolver el siguiente problema. Primeramente les comento que estoy desarrollando una aplicación mediante un arduino UNO que permita variar la frecuencia de parpadeo de un led y que dicha frecuencia cambie cada cierto tiempo. Aun no esta terminada. El caso es que estoy utilizando una libreria llamada RBD_Timer la cual me permite trabajar directamente con un temporizador y manejar la frecuencia lo cual me facilita mucho el trabajo, el problema esta en que cuando le indico un valor de frecuencia, mediante un multimetro puedo determinar que el led esta parpadeando a la mitad de la frecuencia que le establecí. Alguien seria capaz de explicarme que sucede. Muchas gracias de antemano y saludos.

Coloca el código que tienes hasta ahora y también un enlace en tu código donde este incluída la librería que mencionas para que nosotros podamos usarla o entenderla.

Lee las normas para postear debidamente códigos y enlaces.

Hola a todos, aqui les dejo el codigo en el que estoy trabajando, no lo coloque desde un inicio puesto que la disyuntiva que presento es más bien con la libreria RBD_Timer y la función setHertz(). De cualquier forma cualquier comentario seria de mucha ayuda. Gracias y saludos.

Libreria RBD_Timer:RBD_Timer - Arduino Libraries

#include <RBD_Timer.h>
#include <MsTimer2.h>
#include <PID_v1.h>
#include <TimerOne.h>
#define A0 0
#define PMW4 4
#define PMW3 3
#define PMW2 2

RBD::Timer timer1;
bool estado_led_rojo = HIGH;
float frecuencia;
bool presionado;
unsigned int contadorTabla = 4096; //4096 Inicio y 4595 final

void setup() {
  pinMode(PMW4, OUTPUT);
  pinMode(PMW3, OUTPUT);
  pinMode(PMW2, INPUT_PULLUP);
  pinMode(A0, INPUT);
  timer1.setHertz(frecuencia);
  MsTimer2::set(50, flash); // 500ms period
  Serial.begin(9600);
  MsTimer2::start();
}

void loop() {
frecuencia=10;
  if (timer1.onRestart()) {
    LedRojo();
  }

}

void LedRojo(void)                    //CHECK :)
{
  if (estado_led_rojo == LOW) {
    estado_led_rojo = HIGH;
  } else {
    estado_led_rojo = LOW;
  }
  digitalWrite(PMW3, estado_led_rojo);
}

void flash()
{
  if (frecuencia < 60) {
    Serial.print("Frecuencia = ");
    Serial.println(frecuencia);
    Serial.print("Frecuencia del timer= ");
    Serial.println(timer1.getHertz());
    /*Serial.print("Contador de la Tabla  = ");
      Serial.print(contadorTabla);
      timer1.setHertz(frecuencia);
      frecuencia += 0.1;
    */
  }
}

void AtencionBoton() {
  if (digitalRead(PMW3) == LOW)       //Pregunta si el pulsador está presionado
  {
    presionado = 1; //La variable cambia de valor
  }
  if (digitalRead(PMW3) == HIGH && presionado == 1) {
    /*lo que se debe hacer ************
    */
    presionado = 0;               //La variable vuelve a su valor original
  }
}

Porque tienes librerías similares que usan el mismo timer 1?

#include <RBD_Timer.h>  // <== librería sobre Timer1
#include <MsTimer2.h>   // no entiendo para que la necesitas si tampoco la usas.
#include <PID_v1.h>      // no lo usas coméntalo
#include <TimerOne.h>   // <== librería sobre Timer1

Comienza eliminando la que no vas a usar.