TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: ERos en 19 de Marzo de 2019, 17:18:41
-
Buenas tengo una consulta, quiero hacer un pulso de 750 ms en la salida de un led, ¿cómo puedo incluir un número decimal/fraccionario/no entero en la parte RUTINA MOVLW .375 (37.5)?
;*** rutina de 20ms X 50***
RUTINA_TMR0 MOVLW .375
MOVWF CONTADOR
;----------------------------------
TMR0_1S MOVLW .178
MOVWF TMR0
BTFSS INTCON,T0IF
GOTO $-1
BCF INTCON,T0IF
;----------------------------------
DECFSZ CONTADOR
GOTO TMR0_1S
-
Primero que nada y para terminar la pregunta: NO PODES.
Unicamente enteros, es imposible poner valores decimales. Pero pensemos un momento......
Para que te de 750ms en 37.5 vueltas significa que la demora de tu Timer0 es de 20ms.
Si en ves de hacer una demora de 20ms, lo hago de 10ms ( Cargo 178/2 = 89) Ahora puedo simplemente repetir eso 75 veces en ves de 37.5. Y se soluciona el problema xD
Segundo .375 es 375 decimal... Recorda que W es de 8 bits, por lo tanto el maximo es de 255.