TODOPIC
Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: bluesboy en 16 de Abril de 2013, 21:28:55
-
buenas gente, estoy usando el ejemplo del tutorial de Suky para contar cosas, tengo 4 displays de 7 segmentos y no puedo usar LCD.
Mi programa tiene que restar de a uno si se lo indico mediante una llave, pero no logro hacerlo evidentemente porque no se.
Supongamos que tengo un 0 en unidades y un 1 en decenas, le estoy diciendo que cuando decremente la unidad, la pase a 9 y decremente la decena, para eso pregunto si el bit DC de status se pone a uno cuando a 0 le resto 1, y no funca, cada vez que resto me pone a 1 ese bit y se desncadena un error.
Para hacerlo mas fácil, si alguien me puede orientar en como hacer una resta en assembler, en especial restarle 1 a 0 y que pasa con los flags, se lo voy a agradecer.
Muchas gracias por el tiempo.
Sebastián.
-
Saludos bluesboy, la resta en los PIC tiene la siguiente secuencia para la instruccion subwf :
dest = File + (WREG^0xFF) + 1
Es decir que usa el metodo de complemento a 2, esto quiere decir que cuando el resultado de la resta es positivo, es decir, F >= WREG, el bit C se pone en 1, y cuando el resultado de la resta es negativo el bit C se coloca 0.
En el caso del bit DC se debe tomar en cuenta el nible bajo del registro F y de WREG, es decir, si F<3:0> >= WREG<3:0> el bit DC se pone en 1.
Si solo necesitas restar en uno puedes usar la instruccion decf , o decfsz . decf decrementa el registro en uno y decfsz decrementa y salta la siguiente instruccion si se llego a cero.
Saludos
-
¡Gracias Sander! Me estoy quemando la cabeza hace 2 días con esto.
Entonces, si a 0 le resto 1 , ¿el flag C=0?
Gracias.
-
¡Gracias Sander! Me estoy quemando la cabeza hace 2 días con esto.
Entonces, si a 0 le resto 1 , ¿el flag C=0?
Gracias.
resumiendo............. Si :lol:
Cuando estuve aprendiendo ensamblador lei en algun libro que el comportamiento de los flags en otros procesadores es distinto, y que eso siempre causaba confusion.
suerte con tu proyecto
Saludos