Autor Tema: para que descifrar la libreria "tones.c" del ccs? aca una mejor y en ASM  (Leído 23461 veces)

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

Desconectado johnnybravo

  • PIC12
  • **
  • Mensajes: 76
Re: triste desenlace ..... descifrando la libreria "tones.c" del ccs
« Respuesta #30 en: 31 de Enero de 2007, 00:48:04 »
disculpa por haver abamdonado un poco el tema... es que me estaba dedicando mas aun proyectito que estoy tratando de saca... pero bueno ahora le dedicare un poco mas de tiempo..... estube tratando de seguir tus pasos amigo.. compilando el es_tones.c en el mplab.. pero no me sale.. me bota un error..... creo que no lo integre  bien con el ccs.. tu sabes como hacerlo.. porfa no tienes algun manual para integrarlo con el MPLAB.... bueno como yo solo requiero de unos cuantos pines .. esta bien creo hasta donde llegaste....mas bien yo si nesesito que todo mi pic corra a 20MHz... me gusta trabajar a esa frecuencia es como mas exacta..... pero bueno seguir tratando.. de integrar el ccs con el mplab.... ojala pueda llegar hasta donde tu llegaste....
haaaaaaaaa voy a probar el archivo que nos dejaste.. lo bajare ahora mismo....para probarlo y compararlo
ya te comentare luego que me parecio....gracias por todas esas ganas que le pones .. sigue adelante .. mucha suerte
Atte.
Johnny Bravo

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
para que descifrar la libreria "tones.c" del ccs? aca una mejor y en ASM
« Respuesta #31 en: 31 de Enero de 2007, 03:07:53 »
a disculpa pense q ya te habia respondido ... jejeej .  a ver. ...

1º vas a la pestaña PROJECT y clickas en SET LANGUAJE TOOLS LOCATION:


2º ubicas el ejecutalbe CCSC.EXE ,


3º lo puedes buscar yendo al BROWSE y aceptas.


4º finalmente al hacer un proyecto vas a project, clickas en project wizard y te debe salir esto:


5º sigues los pasos normalmente hasta aqui, donde seleccionas de una lista el lenguaje a usar:


6º escojes el CCS C compiler y listo, sigues con lo demas pasos y ya puedes escribir tu codigo en C dentro del MPLAB
« Última modificación: 31 de Enero de 2007, 03:16:12 por micro_cadaver »
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: para que descifrar la libreria "tones.c" del ccs? aca una mejor y en ASM
« Respuesta #32 en: 31 de Enero de 2007, 09:14:16 »
Hola Amigos, buscando en mi pc, encontré el programita que comenzo Elena2000, fue para una navidad, y lamentablemente el archivo estaba en el foro anterior y se perdio... lo subo nuevamente, alli hay un macro para generar los tonos....  :-/ :mrgreen:
Código: [Seleccionar]
; PIC MUSICAL PARA CANTAR VILLANCICOS ESTA NAVIDAD!!!
;LAS 8 SALIDAS DEL PUERTO B CONECTAR LAS LUCES O LED+R SERIE A MASA
;DEL PUERTO A , RESISTENCIAS pull up ,Y uno de los pin 0,2,4 extremo del piezo, 1,3 el otro extremo

list P=16f84a
include "p16f84a.inc"

errorlevel 0,-302   ; ignorar mensajes de error 302

;GPIO equ PORTB


;configuración de los fuses esos...
__CONFIG _XT_OSC & _CP_OFF & _WDT_OFF & _PWRTE_ON


;La escala musical en frecuencias (1 y 2 octava)

constant notaBb1=.238 ;Bb1
  constant notaC2 =.208 ;C2
constant notaD2 =.188 ;D2
constant notaEb2=.168 ;Eb2

constant notaF2 =.159 ;F2
constant notaG2 =.141 ;G2
constant notaA2 =.127 ;A2
constant notaBb2=.119 ;Bb2
  constant notaC3 =.104 ;C3
constant notaD3 =.94 ;D3
constant notaEb3=.84 ;Eb3
constant notaF3 =.80 ;F3

constant notaG3 =.70 ;G3
constant notaA3 =.63 ;A3

;Duración de las notas
constant A_FREC   =.15200
constant B_FREC   =.15500
constant C_FREC   =.15600
constant D_FREC   =.15700

constant E_FREC   =.22800

constant F_FREC   =.30700
constant G_FREC   =.30800
constant H_FREC   =.30900

constant I_FREC   =.60400
constant J_FREC   =.91200
constant K_FREC   =.183500
constant L_FREC   =.183600   


NOTA macro frec,duracion
retlw frec
retlw low ((duracion) / frec)
retlw high ((duracion) / frec)
endm

;registros
org 0Ch
frec res 1
len res 1
lenh res 1
frq res 1
tabpos res 1

contador EQU 11H
LOOPS EQU 12H
;-------------------------------------------------------
org 0
goto inicio
;-------------------------------------------------------

tono movf tabpos,w
addwf PCL,f

;AQUI LA CANCION QUE HA COMPUESTO SUPER-CUCA: EL TAMBORILERO!!!!
 
cancion NOTA notaF2,J_FREC
NOTA notaG2,G_FREC
NOTA notaA2,I_FREC
NOTA notaA2,H_FREC
NOTA notaA2,G_FREC
NOTA notaBb2,B_FREC
NOTA notaA2,C_FREC
NOTA notaBb2,H_FREC
NOTA notaA2,L_FREC
NOTA notaF2,G_FREC
NOTA notaF2,G_FREC
NOTA notaG2,G_FREC
NOTA notaA2,G_FREC
NOTA notaA2,G_FREC
NOTA notaA2,G_FREC
NOTA notaA2,G_FREC
NOTA notaBb2,A_FREC
NOTA notaA2,C_FREC
NOTA notaBb2,G_FREC
NOTA notaA2,L_FREC
NOTA notaG2,G_FREC
NOTA notaA2,G_FREC
NOTA notaBb2,G_FREC
NOTA notaC3,G_FREC
NOTA notaC3,G_FREC
NOTA notaC3,G_FREC
NOTA notaD3,G_FREC
NOTA notaC3,A_FREC
NOTA notaBb2,C_FREC
NOTA notaA2,G_FREC
NOTA notaG2,L_FREC
NOTA notaG2,G_FREC
NOTA notaA2,G_FREC
NOTA notaBb2,G_FREC
NOTA notaC3,G_FREC
NOTA notaC3,G_FREC
NOTA notaC3,G_FREC
NOTA notaD3,G_FREC
NOTA notaEb3,A_FREC
NOTA notaD3,D_FREC
NOTA notaC3,G_FREC
NOTA notaBb2,I_FREC
NOTA notaD3,A_FREC
NOTA notaC3,C_FREC
NOTA notaBb2,G_FREC
NOTA notaA2,I_FREC
NOTA notaC3,A_FREC
NOTA notaBb2,C_FREC
NOTA notaA2,G_FREC
NOTA notaG2,L_FREC
NOTA notaF2,J_FREC
NOTA notaG2,G_FREC
NOTA notaA2,G_FREC
NOTA notaA2,F_FREC
NOTA notaA2,G_FREC
NOTA notaA2,H_FREC
NOTA notaBb2,A_FREC
NOTA notaA2,C_FREC
NOTA notaBb2,H_FREC
NOTA notaA2,K_FREC
NOTA notaG2,E_FREC
NOTA notaF2,C_FREC
NOTA notaG2,G_FREC
NOTA notaF2,L_FREC

endtab ;final de cancion
;-------------------------------------------------------

luces incf contador,F ;secuencia encendido de luces (port b )
movf contador,W

luces1 addwf PCL,f
retlw b'10000001'
retlw b'01000010'
retlw b'00100100'
retlw b'00011000'
retlw b'10100101'
retlw b'01000010'
retlw b'10101010'
retlw b'01010101'
retlw b'10101010'
retlw b'01010101'
retlw b'00100100'
retlw b'11111111'
retlw b'00000000'
retlw b'11011011'
retlw b'00100100'
retlw b'10011001'
retlw b'10000001'
retlw b'01000010'
retlw b'00100100'
retlw b'10011001'
retlw b'00100100'
retlw b'01011010'
retlw b'10101010'
retlw b'01010101'
retlw b'10101010'
retlw b'01010101'
retlw b'00100100'
retlw b'00011000'
retlw b'01100110'
retlw b'11011011'
retlw b'00100100'
retlw b'10011001'
retlw b'10011001'
retlw b'00100100'
retlw b'01011010'
retlw b'00000001'
retlw b'00000010'
retlw b'00000100'
retlw b'00001000'
retlw b'00010000'
retlw b'00100000'
retlw b'01000000'
retlw b'10000000'
retlw b'01000000'
retlw b'00100000'
retlw b'00010000'
retlw b'00001000'
retlw b'00000100'
retlw b'00000010'
;  continuar con la tabla de encendido de luces A GUSTO

clrf contador
retlw b'10000001'

;*****************************************************************************


inicio movlw b'10101010' ;configurar salidas
movwf PORTA ;GPIO

banksel TRISA
movlw b'00000000'
movwf TRISA ;Todos los pines son salidas
banksel PORTA

banksel TRISB
movlw b'00000000'
movwf TRISB ;Todos los pines son salidas
banksel PORTB
;----------------------------------------------------------------------------

MASMUSICA
CLRF PORTB
clrf tabpos ;resetear la posicion en la tabla
CLRF contador
CLRWDT
CLRW

call luces1 ;SECUENCIA DE LAS LUCES
MOVWF PORTB
;--------------------------------------------------------------
nxtnota call canta ;canta nota de la tabla
call play ;play nota
movlw endtab - cancion ;comprueba si termino la tabla
subwf tabpos,w ;
btfss STATUS,Z
goto nxtnota ;no acabó! canta siguiente nota
;---------------------------------------------------------
CLRF PORTB ;APAGO LAS LUCES, EN MODO DE ESPERA.....
CLRF PORTA ;DESCONECTO SALIDA PIEZOELECTRICO
CALL ESPERA
CALL ESPERA
CALL ESPERA
CALL ESPERA

arriba goto MASMUSICA ;arriba ;reinicia si se despierta ;reinicia si se despierta
;-------------------------------------------------------
canta call tono ;canta una nota de la tabla
movwf frec
incf tabpos,f
call tono ;duracion del byte menor peso
movwf len
incf tabpos,f
call tono ;duracion del byte mayor peso
movwf lenh
incf tabpos,f
return

play incf lenh,f
play2 movf frec,w
call nota ;espera 1/2 de la frecuencia
comf PORTA,F ;GPIO,f ;sostiene el sonido
decfsz len,f
goto play2 ;mantener hasta nota acabe
decfsz lenh,f
goto play2

call luces ;SECUENCIA DE LAS LUCES
movwf PORTB

return
;-------------------------------------------------------
ESPERA CLRF frq ;empleo el mismo registro...
call nota
decfsz LOOPS,f
GOTO ESPERA

nota    movwf frq ;espera 1/2 de la frecuencia
wait nop                     
        nop
nop
CLRWDT
        nop
        decfsz frq,f
        goto wait
        return

end



Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: para que descifrar la libreria "tones.c" del ccs? aca una mejor y en ASM
« Respuesta #33 en: 31 de Enero de 2007, 13:17:42 »
gracias todopic, se puede hacer una fusion , me gusta mucho el orden del programa de elena, ademas solo tiene 2 octavas, se le puede agregar para q lleguen a 4 y tener mas espacio para rollearrrrrrrrrrrr  :-/
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado johnnybravo

  • PIC12
  • **
  • Mensajes: 76
Re: para que descifrar la libreria "tones.c" del ccs? aca una mejor y en ASM
« Respuesta #34 en: 01 de Febrero de 2007, 18:44:11 »
buena amigo henry

ya lo pude compilar dede el MPLAB.... :-/
pero disculpa mi poco conocimiento.... como generas el .ASM dede el codigo original en .C con el MPLAB.... existe tambien algun Boton o algun menu que haga eso como en el CCS.

me parece que mejor voy a trabajar el ASM que me genera el CCS
Atte.
Johnny Bravo

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: para que descifrar la libreria "tones.c" del ccs? aca una mejor y en ASM
« Respuesta #35 en: 01 de Febrero de 2007, 22:23:22 »
hola, en realidad no te recomiendo hacer eso...........jejje, porque el CCS utiliza muchos registros de la SRAM y hace un codigo extraño cuando lo vuelcas al assembler, aparte de q todo esta con valores hexadecimales, es decir no hay ninguna etiqueta ni label ni titulo ni nada, tan solo assembler puro , y pasarlo a un assembler mas entendible pues tomara una larga tarea, es mas, notaras q hay rutinas q se pueden simplificar pues el CCS genera rutinas generales q se acomoden a cualqueir pic u otra condicion, sino mira cuanto me demore en tratar de pasar el codigo tones a ASM.

por otro lado, para lo que si sirve esa union del MPLAB y el CCs es para verificar como va generandose el ASM dentro del codigo en C, como una manera de supervision y limaduras de detalles.

para ver el codigo ASM generador por el CCS se hace de la siguiente manera:

VAS A
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado johnnybravo

  • PIC12
  • **
  • Mensajes: 76
Re: para que descifrar la libreria "tones.c" del ccs? aca una mejor y en ASM
« Respuesta #36 en: 02 de Febrero de 2007, 15:07:54 »
aunque no es muy alentador lo que me dices.. te doy las gracias por tu respuesta
.... y bueno entonces a ver otros rumbos.... ha te comento que estube ojenado un poco tu codigo que posteaste... TONOS.asm... bueno segun lo que veo estan la 4 octavas con todas y sus frecuencias.... pero como le vas hacer con la duracion de cada nota ..
yo creo que seria bueno colocar todo eso como una libreria .. algo asi como en el ejemplo del CCS..... o tal vez como una macro ..como lo hizo elena en su moneto con el codigo del pic cantor... y bueno cuando creemos la musiquita... ya solo llamamos a la libreria  para que nos genere la frecuencia coreecta... bueno es solo una sugerencia... aunque no soy un capo voy a tratar de hacer algo.....quiero poner el titanic dentro del pic ..je je je je .. oja pueda
Atte.
Johnny Bravo

Desconectado johnnybravo

  • PIC12
  • **
  • Mensajes: 76
Re: para que descifrar la libreria "tones.c" del ccs? aca una mejor y en ASM
« Respuesta #37 en: 02 de Febrero de 2007, 15:23:32 »
ha te acuerdas del programita que te pase.. aquel que se llamaba MIDIASM.... de sispic creo que era...pero bueno yo solo lo tenia guardado..... pero en si nuca llegue a utilisarlo... tu legaste a decifrarlo bien .. como actua... lo que te bota ese programita es la frecuencia y la duracion eso lo se .. pero esta en ese orden.. frecuencia , duracion o  es al reves duracion, frecuencia... esto me causo duda ya que cuando quise pasar el tema del titanic habian algunas notas que me salian asi:
384 , 0                       ///// bueno yo creo que esto debe ser duracion , frecuencia ..porque estraia indicando silencio
196 , 277                   ///// y esta linea indicaria 196 supongo milisegundo de la frecuencia 277
188 , 139
284 , 659
4 , 277
332 , 659
8 , 988
152 , 415
168 , 0
8 , 988
64 , 1319
232 , 0

bueno tu que crees .... como te fue a ti ....ya lo decifraste ?
...algo mas .. segun lo que llege a leer en aquel post el programa estaba echo para decifrar el midi en 4 octavas, justo como tu lo querias... creo......
Atte.
Johnny Bravo

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: para que descifrar la libreria "tones.c" del ccs? aca una mejor y en ASM
« Respuesta #38 en: 02 de Febrero de 2007, 15:26:44 »
añap
ahora lo voy a revisar
ddddddddddddddddddddddddd :-/
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com