Autor Tema: Alguien sabe????  (Leído 2199 veces)

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

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Alguien sabe????
« en: 20 de Junio de 2007, 20:45:46 »
Hola que tal amigos... :lol: escribo hoy porque estoy haciendo un programa que me genere un sonidito para un ascensor, la cosa es que encontre un ejemplo en proteus que se llama doorbell, he estado interpretandolo  para ayudarme un poquito con mi programa, pero resulta que hay una instrucción que no entiendo para que sirve, le he preguntado hasta a el perro y nadie me da razón de ese operador.... Si alguno de ustedes me puede ayudar se lo agradeceria, aquí les copio la instrucción para que la vean...:

                      movlw   tune1 / 0x100        
                                       movwf   tptrh
         movlw   tune1 % 0x100        
                                      movwf   tptrl

Para que sirven los operadores ( / ) y ( % )........????


Donde tune1 es una tabla que me retorna ciertos valores para producir una nota musical....

Muchas Gracias!!!!!!! :-)

Atte: Enigma... La llanerita de Guayana :P
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Alguien sabe????
« Respuesta #1 en: 20 de Junio de 2007, 21:14:35 »
Hola que tal amigos... :lol: escribo hoy porque estoy haciendo un programa que me genere un sonidito para un ascensor, la cosa es que encontre un ejemplo en proteus que se llama doorbell, he estado interpretandolo  para ayudarme un poquito con mi programa, pero resulta que hay una instrucción que no entiendo para que sirve, le he preguntado hasta a el perro y nadie me da razón de ese operador.... Si alguno de ustedes me puede ayudar se lo agradeceria, aquí les copio la instrucción para que la vean...:

                      movlw   tune1 / 0x100       
                                       movwf   tptrh
         movlw   tune1 % 0x100        
                                      movwf   tptrl

Para que sirven los operadores ( / ) y ( % )........????


Donde tune1 es una tabla que me retorna ciertos valores para producir una nota musical....

Muchas Gracias!!!!!!! :-)

Atte: Enigma... La llanerita de Guayana :P

Podes encontrar en la ayuda del MPLAB el significado de cada operador lógico o aritmético.

El "/" es una división, y el "%" un MOD(MOD significa que devuelve el resto de una división ENTERA)

EJ:

5 MOD 4 = 1 porque: dividendo- (divisor * resultado) = resto, entonces: 5 - 4*1 = 1
11 MOD 4 = 3 porque 11 - 4*2 = 3
17 MOD 2 = 1 porque 17 - 2*8 = 1

Etc...

Dichas operaciones se procesan pre-ensamblado del archivo, por lo que solo sirven para realizar cambios de configuracion de las instrucciones a generar en el archivo .hex, pero no creas que efectivamente son divisiones u operaciones logicas durante la ejecucion del programa.

Ejemplo:

Si defino asi:
tune1 EQU 0x101

y pongo:
movlw   tune1 % 0x100

el MPASM, reemplazará y quedará:

movlw   0x101 % 0x100

y ejecutará las operaciones antes de ensamblarlo, quedando:

movlw 0x001

En definitiva, es util cuando necesitas cambiar el codigo fuente de manera rapida y simple cambiando solamente ciertos parametros(como el tune1)

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Alguien sabe????
« Respuesta #2 en: 20 de Junio de 2007, 22:08:16 »
Es decir, que el esta sacando el valor de la tabla y lo esta dividiendo entre 100??? y el resto de esa división lo esta guardando en tptrl...???? es eso?

Atte: Enigma... La llanerita de Guayana :P
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Alguien sabe????
« Respuesta #3 en: 20 de Junio de 2007, 23:21:24 »
Correcto!  :-/
la parte entera movwf   tptrh

y el resto en movwf   tptrl  :-/


Saludos

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

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

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Alguien sabe????
« Respuesta #4 en: 21 de Junio de 2007, 00:36:35 »
Ahhhh!!! ya entendi!!!!  :-)  más fiiiinoo!!!!  :mrgreen:  jejejeje muchas gracias!!! se les quiere!!!! :-/

Atte: Enigma... La llanerita de Guayana :P
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!


 

anything