Autor Tema: Sonido con PIC12F683  (Leído 7205 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado Josef

  • PIC12
  • **
  • Mensajes: 74
Sonido con PIC12F683
« en: 29 de Diciembre de 2006, 22:19:37 »
Hola amigos
Por que no puedo generar sonido con el comando sound de PICBASIC, miren lo siguiente:

PIEZO VAR GPIO.0
   
   INICIO:
   
   SOUND PIEZO, [100, 10, 50, 20, 100, 10, 50, 20]
   END
___________________________________________________________________________

En las mismas condicones del circuito si puedo generar con el comando freqout

PIEZO VAR GPIO.0
   
   INICIO:

   FREQOUT PIEZO, 1000, 4000     
      END

Por que puede ser que no genere sonido, pareciera generar un sonido de alta frecuencia es decir se oye algo muy agudo nada mas, pero de bajo nivel.

Sugerencias?....

Gracias

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Sonido con PIC12F683
« Respuesta #1 en: 29 de Diciembre de 2006, 23:42:44 »
Tiene caracteristicas especiales ese PIC, como ADC, comparadores o algo asi???? 

Si es asi checa que todo este en digital o quizas el OSC -me imagino interno no de el ancho para esa funcion- intenta con notas mas bajas.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Sonido con PIC12F683
« Respuesta #2 en: 30 de Diciembre de 2006, 02:54:20 »
Sospecho que no has configurado bien el oscilador de ese PIC, y lo tienes trabajando a una frecuencia distinta de la que necesitas.
Pega el código entero a ver si vemos algo.

Desconectado Josef

  • PIC12
  • **
  • Mensajes: 74
Re: Sonido con PIC12F683
« Respuesta #3 en: 30 de Diciembre de 2006, 11:49:25 »
Hola amigos, laverdad que no se como configurar exactamente el ADCON1 y el TRIS en este chip, es una de 8 pines con ADC interno, les paso todo el código, en realidad es muy corto, tambien probe con OSC 4, pero igual, tambien probe oscilador externo, pero nada.....

'GENERAR SONIDO
   DEFINE OSC 8
   PIEZO VAR GPIO.0
   
   INICIO:
   SOUND PIEZO, [100, 10, 50, 20, 100, 10, 50, 20]
   END

Cuando agrego TRISA = %000000, me da un mensaje de error, "simbolo no previamente definido", pero al final crea el HEX.
Ojala me puedan ayudar
JoseF

Desconectado Veguepic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2119
Re: Sonido con PIC12F683
« Respuesta #4 en: 30 de Diciembre de 2006, 12:06:05 »
Primero definir los puertos:

TRISIO =%001000

Por ejemplo el codigo anterior significa que GPIO.0, GPIO.1, GPIO.2, GPIO.4, y GPIO.5 son salidas (0 = out) y el GPIO.3 es entrada (1 = in). Pagina 32 del datasheet.

Luego tienes que desactivar los comparadores, pagina 47:

CMCON0  = 7

Y tambien desactivar el ADC, pagina 59:

ANSEL   = 0

Adicionalmente desactivar el voltaje de referencia y las interrupciones, paginas 53 y 13:

VRCON   = 0
INTCON  = 0

A parte que veo que no has definido los fuses, pagina 76:


@ device pic12F683, FCMEN_OFF
@ device pic12F683, IESO_OFF
@ device pic12F683, CPD_OFF
@ device pic12F683, PROTECT_OFF
@ device pic12F683, BOD_OFF
@ device pic12F683, MCLR_ON
@ device pic12F683, PWRT_ON
@ device pic12F683, WDT_OFF
@ device pic12F683, INTRC_OSC_NOCLKOUT



Creo que deberias usar un PIC mas simple para empesar como el 16F84 o el 12F508, porque el 12F683 tiene bastantes opciones por lo que es mas probable cometer algun error y darle una buena leida al datasheet.

http://ww1.microchip.com/downloads/en/DeviceDoc/41211C.pdf

Saludos
« Última modificación: 30 de Diciembre de 2006, 12:16:38 por veguepic »
“Si la gente es buena sólo porque temen al castigo y porque esperan una recompensa, entonces verdaderamente somos un grupo lastimoso." Albert Einstein.

Saludos desde Lima , Peru    -    Hugo

Desconectado Veguepic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2119
Re: Sonido con PIC12F683
« Respuesta #5 en: 30 de Diciembre de 2006, 12:40:13 »
El codigo podria ser:

INCLUDE "modedefs.bas"

@ device pic12F683, FCMEN_OFF
@ device pic12F683, IESO_OFF
@ device pic12F683, BOD_OFF
@ device pic12F683, CPD_OFF
@ device pic12F683, PROTECT_OFF
@ device pic12F683, MCLR_ON
@ device pic12F683, PWRT_ON
@ device pic12F683, WDT_OFF
@ device pic12F683, INTRC_OSC_NOCLKOUT

OSCCON  = $60
DEFINE  OSC 4

INTCON  = 0
CMCON0  = 7
ANSEL   = 0
VRCON   = 0
TRISIO  = %001000

PIEZO VAR GPIO.0
   
INICIO:
   SOUND PIEZO, [100, 10, 50, 20, 100, 10, 50, 20]
   PAUSE 200
   GOTO INICIO
   END
“Si la gente es buena sólo porque temen al castigo y porque esperan una recompensa, entonces verdaderamente somos un grupo lastimoso." Albert Einstein.

Saludos desde Lima , Peru    -    Hugo

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Sonido con PIC12F683
« Respuesta #6 en: 30 de Diciembre de 2006, 13:23:47 »
Hola:

Hugo, no esta demas esta linea?

INCLUDE "modedefs.bas"

Desconectado Josef

  • PIC12
  • **
  • Mensajes: 74
Re: Sonido con PIC12F683
« Respuesta #7 en: 30 de Diciembre de 2006, 14:37:13 »
Gracias amigos, ahora si funciona....
Probe sin el INCLUDE "modedefs.bas" , y tambien funciona, probe con y sin setear los fuses y tambien trabaja, pero con los fuses, me da el error de ilegal opcode, no se por que?, pese a esto si crea el HEX.

Tambien le di una mirada al datashet a las paginas que me dicen, pero la verdad que no me quedo  bien claro, bueno, ya ire aprendiendo....
Gracias

Desconectado Veguepic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2119
Re: Sonido con PIC12F683
« Respuesta #8 en: 30 de Diciembre de 2006, 15:00:32 »
Tienes razon Gio, no me habia dado cuenta.   :?

Esa linea se utiliza solo si usas las siguientes funciones:

Debug, Serin/out, Shiftin/out, Xin/out

Me alegro que funcionara Josef, no se porque te sale ese mensaje pues yo lo compilo y no me da error.

Te recomiendo que bajes el archivo que puso Joaquin, explica muy bien como usar el 12F675, esta en castellano.

http://www.todopic.com.ar/foros/index.php?topic=15268.msg95877#msg95877

Saludos.
“Si la gente es buena sólo porque temen al castigo y porque esperan una recompensa, entonces verdaderamente somos un grupo lastimoso." Albert Einstein.

Saludos desde Lima , Peru    -    Hugo

Desconectado Josef

  • PIC12
  • **
  • Mensajes: 74
Re: Sonido con PIC12F683
« Respuesta #9 en: 30 de Diciembre de 2006, 15:35:19 »
Gracias amigos, tengo otro problema parecido con PIC16F877A, esta vez con PROTON, al final creo que son lo mismo, mas otro problema adicional con el LCD.
Quiero mostrar temperatura y ponerle alarmas de alta y baja temperatura, el programa aun falta......pero por ahora tengo estos errores....

1.- Quiero usar el PORTA.O, como salida de sonido a un piezo, pero solo me genera ruido blanco como en el anterior caso, creo que es por la    configuracion del puerto A, pero ya me canse de probar, por favor diganme como configurarlo. Actualmete el código debajo esta con el pin B.1, y asi si funciona.
2.-No se por que tengo que dejar un espacio en blanco antes de escribir en PRINT $FE, 1,  " TEMPERATURA", si no dejo este espacio me sale cortada la palabra TEMPERATURA o sea me muestra EMPERATURA, ademas de esto se muestran inestables las dos primeras letras de la palabra, algunas veces se desaparece la letra T, o o me muestra un D, cosa extraña, lo mismo me sucede con un programa de HOL MUNDO, que lo incluyo al final.

Gracias por su colaboracion.
JoseF


' Mostrar y controlar temperatura con un LM35
   
          Device 16F877A
      Declare XTAL 20
               
' Asigna pines de LCD
         
        DECLARE LCD_DTPIN PORTB.4
        DECLARE LCD_ENPIN PORTB.3
        DECLARE LCD_RSPIN PORTB.2
        DECLARE LCD_INTERFACE 4
        DECLARE LCD_LINES 2

          Declare ADIN_RES   10
        Declare ADIN_TAD   2               
        Declare ADIN_STIME   100

      Dim Temp as Word                         

      'Symbol N9600 = 104 - 20
   
       Symbol AN1 = 1     
        SYMBOL PIEZO = PORTb.1    'AQUI QUISIERA USAR PORTA.0


      TRISA = %00000010     
      TRISb = %00000000
      CMCON  = 7
      INTCON  = 0
      
          ADCON1 = %11111110       'Set up  ADCON1  RA1 - RAx analogo

Main:   Temp = Adin AN1           'Carga la variable TEMP con la muestra "sample"
       'Serout PORTC.6,N9600, [ "Temperatura es ",dec (Temp / 2) - 3," Grados C   ",dec Temp,13]
      'Delayms 500
      
         temp =  (TEMP/2) - 3
       DISPLAY:
       PRINT $FE, 1,  " TEMPERATURA "
         print $FE, $C0, dec temp , " Grados C"
       delayms 500
       
         if temp > 25 then
       high portb.0
       else
       low portb.0
         endif
         
         if temp < 24 then
         high portc.0
         else
         low portc.0
         endif
         
         if temp > 26 then GOSUB BEEP 'Ir a la alrma
         
         if temp < 23 then GOSUB BEEP  'Ir a la alarma
         
                   
        Goto Main
         
          BEEP:
          SOUND PIEZO, [120, 10, 123, 20, 115, 10, 110, 20]
          RETURN

---------------------------------------------------------------------------------------

 Device  16F877A
  XTAL 20
 START:
 CLS
 DELAYMS 100
 'DECLARE LCD_TYPE 0
 DECLARE LCD_DTPIN PORTB.4
 DECLARE LCD_ENPIN PORTB.3
 DECLARE LCD_RSPIN PORTB.2
 DECLARE LCD_INTERFACE 4
 DECLARE LCD_LINES 2
 
  Inicio:
  PRINT $FE, 1,  "Hola Mundo"
  DELAYMS 1000
  goto inicio:
 

Desconectado Josef

  • PIC12
  • **
  • Mensajes: 74
Re: Sonido con PIC12F683
« Respuesta #10 en: 30 de Diciembre de 2006, 17:16:29 »
Bueno, viendo en la ayuda cambie  PRINT $FE, 1,   "Hola"      por      PRINT $FE, 2,   "Hola", ahora si ya no tengo problemas en el LCD, pero aun me falta por poder usar PORTA.0 como salida para el piezo......
El código quedo asi:

 Device  16F877A
  XTAL 20
 START:
 CLS
 DELAYMS 100
 DECLARE LCD_TYPE 0
 DECLARE LCD_DTPIN PORTB.4
 DECLARE LCD_ENPIN PORTB.3
 DECLARE LCD_RSPIN PORTB.2
 DECLARE LCD_INTERFACE 4
 DECLARE LCD_LINES 2
 
  Inicio:
  CLS
  DELAYMS 100
  PRINT $FE, 2,   "Hola"
  print $FE, $C0, "Mundo"
  DELAYMS 1000
  goto inicio:
  END

Aun espero su ayuda, siempre, JoseF

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Sonido con PIC12F683
« Respuesta #11 en: 30 de Diciembre de 2006, 19:04:41 »
Hola JOsef te recomiendo que antes de usar un PIC con esas caracteristicas te leas su datasheet, en este caso sigue siendo lo mismo esta configurado como ADC... Todos los datas son muy claros con respectos a como activar y desactivar los registros del PIC y te lo digo yo que soy medio wey para eso.

Para resolver con el 877 este problema cambia la linea de ADCON1=%11111110 por esta ADCON1 = 7 que es igual a ADCON1= %111 esto lo hace digital. y el TRISA =0 para salidas.

Suerte y FELIZ AÑO
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado Josef

  • PIC12
  • **
  • Mensajes: 74
Re: Sonido con PIC12F683
« Respuesta #12 en: 31 de Diciembre de 2006, 14:02:24 »
Gracias amigos, su ayuda siempre es util.
Feliz año nuevo a todos...
JoseF

Desconectado Jose_Miramontes

  • PIC10
  • *
  • Mensajes: 10
Re: Sonido con PIC12F683
« Respuesta #13 en: 08 de Agosto de 2007, 15:26:39 »
hola, estoy trabjando con el pic12f683, programo en pic basic quisiera saber como puedo programarlo, sis e puede por medio de bootloader por serial, o como lo puedo programar.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Sonido con PIC12F683
« Respuesta #14 en: 08 de Agosto de 2007, 15:30:33 »
Hola Jose pues todos los pic los puedes programar via serial. Aqui la pregunta es ¿Ya cuentas con un programador y un software para programar?

Si tu resuesta es no, date una vuelta por el foro de programadores y busca el que mas te convenga, los hay Serie, USB y paralelos. Los mas comunes suelen ser los programadores serie y los mas faciles de adquirir tambien.

"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."


 

anything