Autor Tema: Pregunta acerca de delay en PICC  (Leído 2188 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Pregunta acerca de delay en PICC
« en: 03 de Diciembre de 2015, 11:33:21 »
Hola

Estoy migrando un código realizado en PICC hacia XC8.

El código no lo hice yo, y dicho compilador lo utilice en un simple ejemplo hace varios años atrás y preferí aprender los compiladores de MCHP.

Dentro del código, en la función main existe un retardo en microsegundos, algo así como lo muestro a continuación:

void main (void)
{
...

   while(true)
 {
      if (STAR)
     {
          STAR = FALSE;
          delay_us(750);
         ........
       }
 }

}

Alguna vez leí o alguien me comentó que la instrucción delay_us deshabilita las interrupciones globales del microcontrolador mientras dura el retardo o delay.

¿Estoy en lo correcto?

Gracias
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Pregunta acerca de delay en PICC
« Respuesta #1 en: 03 de Diciembre de 2015, 11:52:49 »
Realmente en el manual no dice nada de que desactive las interrupciones, si lo hace no es una demora, sino que es algo malo.

Yo estaria mas que seguro que no las desactiva. Lo que si, tenes que tener en cuenta que esta limitado

Citar
The delay argu-ment must be a constant and less than approximately 179,200 for PIC18 devices and approximately 50,659,000 for other devices.

Esto se refiere a la cantidad de ciclos, es decir de _delay(x), _delay_ms() y _delay_us() usan a _delay(), por ende hay que tener en cuenta el limite que se puede llegar con estos. Es un poco molesto pero si se necesita mucha demora no deberia haber problema poniendolo en un for.

Acabo de darme cuetna que preguntas por el delay de PICC, en fin, no creo que lo desactive, sino no seria un buen delay.
« Última modificación: 03 de Diciembre de 2015, 15:08:05 por KILLERJC »

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re:Pregunta acerca de delay en PICC
« Respuesta #2 en: 03 de Diciembre de 2015, 15:24:37 »
DominusDRR

cuando preguntas por la función delay_us, ¿lo haces por el compilador PICC o por el compilador XC8?

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Pregunta acerca de delay en PICC
« Respuesta #3 en: 03 de Diciembre de 2015, 17:19:33 »
DominusDRR

cuando preguntas por la función delay_us, ¿lo haces por el compilador PICC o por el compilador XC8?

Título de este hilo:

Pregunta acerca de delay en PICC
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re:Pregunta acerca de delay en PICC
« Respuesta #4 en: 03 de Diciembre de 2015, 17:24:54 »
ok, en la ayuda del PICC dice lo siguiente respecto al uso de la función delay_xx:

Citar
Creates code to perform a delay of the specified length. Time is specified in microseconds. Shorter delays will be INLINE code and longer delays and variable delays are calls to a function. This function works by executing a precise number of instructions to cause the requested delay.  It does not use any timers. If interrupts are enabled the time spent in an interrupt routine is not counted toward the time.

 

The delay time may be longer than requested if an interrupt is serviced during the delay. The time spent in the ISR does not count toward the delay time.

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re:Pregunta acerca de delay en PICC
« Respuesta #5 en: 03 de Diciembre de 2015, 17:41:41 »
No. el delay_xx en PICC no deshabilita ninguna interrupción, ni global ni ninguna en particular.

Lo único a tener en cuenta es lo que cita PalitroqueZ, que el tiempo de retardo de la función se detiene cuando se ejecuta una interrupción por lo que el tiempo que ésta consuma será añadido al tiempo total del delay.
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Pregunta acerca de delay en PICC
« Respuesta #6 en: 03 de Diciembre de 2015, 17:55:44 »
Muchas gracias a todos por la información.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32


 

anything