Autor Tema: Consejo para crear una señal cuadrada  (Leído 1711 veces)

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

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Consejo para crear una señal cuadrada
« en: 02 de Mayo de 2013, 16:50:08 »
Hola a todos, estoy implementando las librerías TCP/IP en un prototipo que estoy desarrollando y estoy intentando utilizar la librería tick.c para fabricar una señal cuadrada que excitará un altavoz y la verdad es que no sé como bajar el tiempo de 1 segundo
El código que hace que un led parpadee es este:
Código: [Seleccionar]
// Blink LED0 (right most one) every second.
        if(TickGet() - t >= TICK_SECOND/2ul)
        {
            t = TickGet();
            LED0_IO ^= 1;
        }
No sé si se podrá implementar lo que quiero con esa librería o sería mejor utilizar un timer diferente e implementar una señal pwm, ¿Qué consejos me dais?
Si hace falta que ponga la librería al completo me lo decís
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: Consejo para crear una señal cuadrada
« Respuesta #1 en: 03 de Mayo de 2013, 15:51:57 »
Si dispones de un PWM y lo puedes utilizar para ello, pues mejor. Fijas  la frecuencia le cargas el duty al 50% y listo. Sólo basta activar/desactivar el módulo PWM para controlar el sonido.

Si tienes un timer que puedas utilizar pues también puede servirte muy bien, siempre que lo hagas por interrupción. Al menos reduces  el jitter producto de la ejecución del software de aplicación.

Un saludo
Reinier

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Re: Consejo para crear una señal cuadrada
« Respuesta #2 en: 04 de Mayo de 2013, 12:51:53 »
Gracias pues voy a ver como se hace en c18 porque no tengo ni idea en ccs si pero en c18 no.

otra cosa, ¿se podría utilizar esta librería para generar una cuadrada de unos 10Khz?, y ¿cómo se haría?, no sé como utilizar esta librería si alguien me lo explicara un poco.
gracias
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Consejo para crear una señal cuadrada
« Respuesta #3 en: 05 de Mayo de 2013, 02:52:25 »
Jamas vi esa libreria, pero si no te quieres meter con el pwm (que es mejor) puedes hacerlo con el tmr0. Ejemplos hay por todos lados.

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Re: Consejo para crear una señal cuadrada
« Respuesta #4 en: 05 de Mayo de 2013, 07:32:20 »
Es que esa librería utiliza el timer0 para los tiempos, si quieren y se puede claro (no veo porque no ya que es gratuita), la subo para que le echen un vistazo a ver si ustedes que son profesionales me podéis orientar.
y por descartado utilizaré una pwm pero me queda la curiosidad y cómo se trata de aprender puessss.....
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: Consejo para crear una señal cuadrada
« Respuesta #5 en: 07 de Mayo de 2013, 10:12:40 »
Debido a que la frecuencia de salida es 10kHz lo más aconsejable es utilizar un PWM con Duty 50%. Este método te evita tener que ejecutar código cada 100us solamente para cambiar el estado de un pin del uC. Aunque parezca un poco sórdido esa sola función se comerá una parte muy considerable de tu tiempo de procesamiento, y si es sólo para hacer sonar una bocina/buzer no vale la pena.

Sin embargo con el PWM no tienes que estar al tanto de cambiar el estado del pin, de eso se encarga el módulo OCC (Output Capture/Compare), claro que eso consume un TIMER y un OCC, pero no gastas tiempo valioso de computación en cambiar el estado del pin. En este caso cada vez que quieras hacer sonar la bocina activas el OCC y cuando la quieras apagar lo deshabilitas y listo. Generar el tren de pulsos de 10kHz es responsabilidad del OCC.

Además en este caso no te hace falta la librería de la que hablas para esta función, simplemente configurar el OCC+TIMER y  funciones (o macros) para deshabilitar/habilitar el sonido.

Un saludo
Reinier

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Re: Consejo para crear una señal cuadrada
« Respuesta #6 en: 07 de Mayo de 2013, 18:59:36 »
Pues gracias por la información la verdad que me has dado un punto de vista nuevo, me pondré manos a la obra ya que con c18 nunca he implementado una pwm, hace poco que lo estoy toqueteando, antes hice muchas cosas en ccs y la verdad que es mucho mas fácil pero me encantan los retos si no la vida sería muy aburrida.

saludos
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...