Trabajando con XC8 y el sensor Dallas DS18B20.
Este trabajo compilado con XC8 para un PIC18F4620, mide la temperatura con un sensor DS18B20 muestra la temperatura en una pantalla 16x2 y también envía por la UART el dato de temperatura.
En este ejemplo podemos encontrar rutinas para el envío de cadenas y manejo de la UART de un PIC18, las funciones para otros sensores como el DS18x20 y el manejo del una pantalla LCD 16x2.
En particular hay dos funciones interesantes de comentar, la función que envía cadenas almacenada en la memoria de programa.
Donde vemos que la función no tiene argumento de retorno pero si de trabajo, un puntero del tipo char declarado const que apuntará a la cadena contenida en memoria de programa.
Un bucle que se repite mientras el carácter null no sea encontrado, este carácter no será transmitido por la UART.
Otro bucle while() es el encargado de recorrer la cadena enviando carácter por carácter esperando que el buffer del transmisor esté vacío, luego incrementa la dirección del puntero hasta que el bucle principal encuentre la marca del fin de cadena.
La función que envía cadenas desde la RAM es igual a la anterior solo que el puntero es del tipo char ya que apunta a la memoria RAM.
El funcionamiento de esta función es idéntico al anterior.
El archivo principal quedaría de esta forma:
El proyecto completo para MPLAB X lo puedes descargar desde este link
.