TODOPIC
Microcontroladores PIC => - Niple - => Mensaje iniciado por: Fidel Martins en 18 de Agosto de 2010, 23:20:02
-
A los que nos aconpañan.
No he logrado hacer esta rutina:
selector
movlw b'00000101'
andwf contador,0 ;mascara contador p/limitar valor em 5
addwf pcl,1 ;suma contador con pcl, p/saltar p/prog N
goto prog_1
goto prog_2
goto prog_3
goto prog_4
goto prog_5
goto inicio
Subo el NPL p/que vean.
-
Hola Fidel!
Esa máscara está medio rara! :mrgreen:
La máscara como la estás usando no está limitando correctamente el valor, es más, te lo está modificando con ciertos valores de entrada. Deberías realizar una resta para comprobar que el valor sea menor a 5, y en caso de que no lo sea, corregirlo mediante una resta u otro método. Con máscaras también se podría, pero puede que sea algo más complejo.
Saludos.
-
Hola Bruno.
Creo que tienes razón, ese pedazo de codigo lo escribi en el post. Queria que niple me reproduciera algo parecido (p/eso subi el NPL).
El tema es: que quando me genera el codigo asm, no tira todos los goto y muere en el primero.
Lo pongo modificado y probado con mplab.
selector
movf contador,w ; =1,2,3,4,5,6 uno destos estara cargado en contador
addwf pcl,1 ;suma contador con pcl, p/saltar p/prog N
nop ;
goto prog_1
De aca p/delante, no pone nada, aunque este diseñado en npl. Pero claro que lo he hecho de otras formas, por ej.: Rutinas Básicas/Funciones Lógicas/Comparar Reg. (6 rombos los pongo en cadena) pero queda muy grande.
Deberian poner esta rutina edictable en herramientas (una entrada y N salidas), igual a Tablas.
-
Hola Fidel. Lamento decirte que nunca programé en Niple, por lo que desconozco cómo hacer un COMPUTED GOTO en el mísmo. Por ahí alguien por acá pueda orientarte más.
Saludos.
-
gracias Bruno, ojala el amigo Mike79 lea el post y me de una mano. O entoces mejor seria Canito p/arreglar esto, pero parece que nos abandono. :5] :5]
Saludos.
-
Amigo fidel de tu problema yo nada de nada pero enviale unos meil a Jorge aunque se esta muy ocupado tardara pero seguro te da bola.Un Abrazo sergio peralta
-
Hola Fidel
respecto al proyecto de Niple que has psoteado, no te puede generar el asm pues has colocado un monton de etiquetas solamnete y en ningun lado se llama a esas etiquetas.
Cuando realizas la comprobacion, no puedes, aunque al final salga grande no puedes ir preguntando repetidas veces el valor del contador cada vez con un numero distinto y dependiendo del resultado realizar: prog1, o 2 o 3,.....
Es una idea no se si será la mejor. Lo que si es cierto, creo, es que si pones goto dentro de las tablas, siempre vas a tener saltos incontrolados.
fer.
-
pense que yo solamente usaba esa rutina :D, a mi juicio creo que es mas rapido que hacer un "switch" ya que no se compara valor por valor, sino que salta inmediatamente (en DSP se saca provecho), el problema es que puede ser inestable si te sales de los limites :lol:
yo tambien lo intente una vez con niple y tube el mismo problema, tendras que hacerlo manualmente
xau
-
Cierto Fer.
De la forma que me planteas, ya lo hice varias vezes y queria explorar caminos mas cortos.
Y si la hago a mano funciona, siempre tomando cuidado que los saltos se queden dentro un solo entorno (sea el principal o subrutina).
Lamento que no lo tengan inplementado, asi como las tablas.
El amigo Pato, parece que tuvo la misma frustración.
Ojala que los desenvolvedores agreguen un menu para esto. Seria un bloque con una entrada y varias salidas.
Pato de adonde eres? yo soy brasileño y me crie en Chile (Santiago) de los tres hasta los diezysite años.
Saludos.
Fidel.