Go Down

Topic: ESP32 - Generar pulsos de 75 nsg a frecuencia variable. (Read 73 times) previous topic - next topic

emilts

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

Code: [Select]

#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() {
}


Go Up