Hola que tal amigos... 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
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.