Hola.
Estoy trabajando con el ESP32, puesto que necesito controlarlo por Bluetooth, para que genere pulsos de amplitud fija a 75nsg, pero con una frecuencia variable que le enviaré mediante una app Android instalada por ejemplo en un teléfono o tablet.
Estoy desarrollando la primera parte, es decir, generar los pulsos con una duración de 75nsg, pero por más que modifico los valores en las funciones "timerBegin" y "timerAlarmWrite", no consigo pulsos inferiores a 2 microsegundos, según me muestra el osciloscopio.
Pueden indicarme como corregir el problema y si es posible también, como variar después la frecuencia a la que se produzcan estos pulsos.
Gracias
#define LED 13
volatile uint8_t ledOn = 1;
hw_timer_t * timer = NULL;
portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;
void IRAM_ATTR onTimer(){
portENTER_CRITICAL_ISR(&timerMux);
digitalWrite( LED, ledOn ^= 1);
portEXIT_CRITICAL_ISR(&timerMux);
}
void setup() {
pinMode(LED, OUTPUT);
timer = timerBegin(0, 6, true); //-- (80Mhz / 6) = 13,3Mhz = periodo de 75nsg
timerAttachInterrupt(timer, &onTimer, true);
timerAlarmWrite(timer, 1, true);
timerAlarmEnable(timer);
}
void loop() {
}