El problema de ASM, es que necesitas conocer como funcionan los modulos.
Tu codigo tiene poco y nada realizado.
Se controlará la velocidad de un motor utilizando el potenciómetro.
Obviamente necesitas leer con el ADC el valor. veo que o haces y esta bien...
Por cierto la librería de LCD.inc del libro de palacios quería implementarla para el manejo del LCD, le cambie unas cosas pero no me funciono.
Necesitas si o si una libreria para el LCD, no creo que quieras hacerla de cero, ya que implica conocer como funciona el driver del LCD y eso es leerse varias hojas de su datasheet.
tengo una ligera idea como iniciar pero aun así tengo varias dudas
¿Cuales son tus dudas?
Teniendo el PR2 en 0xFF (255) es genial, porque te facilita las cosas, aunque esto signifique que el periodo no sea tan facil de controlar, pero para cumplir con los objetivos es valido.
Lo que te faltaria es:
-Calcular el porcentaje.
Sabes que el PR2 es 255, por lo tanto vamos a simplificar nuestra operacion
CCPRxL * 100 / 255
CCPRxL * 100 / 255
CCPRxL * 20 / 51
CCPRxL * 0.3921568627
La multiplicacion, la podes hacer con el multiplicador de 8x8, o haces la multiplicacion por 20, y luego dividis (que podes multiplicarlo por su reciproco) o directamente, haces la multiplicacion del ultimo. Donde.... el CCPRxL sea expresado en formado Q8.0 es decir 8 enteros, 0 fraccionarios, y el numero 0,39... sea expresado como Q0.8 (0 enteros y todos decimales) de esa forma al multiplicarlos el resultado te queda en Q8.8, es decir 8 enteros ubicados en PRODH y los 8 decimales en PRODL. Un solo paso!.
- Escribirlo en el LCD
Observar si es mayor o menor a ciertos valores en simple... Directamente haces:
- Es menor a 30?
- Es menor a 70?
Y lo que queda si no es ninguna de esas 2 es que sea mayor...
Pero en este caso si o si necesitamos de esa libreria, Los textos van a estar guardados en la FLASH seguramente. Y gracias a que tenes un PIC18, podes acceder a ellos de dos formas distintas, mediante tablas (ver el datasheet) o saltos GOTO (esto no tiene sentido en ese PIC)