Libreria LCD 2x16 para un AVR Atmega328P

Es común utilizar este lcd 2x16 pero muy util y fasil a la hora de implementarlo y simularlo se puede encontrar bastantes librerías en la red con licencia gpl de esta forma no tendrás problemas con los autores si sabes que es gpl, bueno en esta sección vamos a utilizar una de esa que me encontré en la red, esta bastante completo, pero sin embargo no se describirá todo la libreria solo unas funciones bastante básicas, es por donde siempre uno inicia.

Lo primero que debes hacer es descargarte la libreria y agregarlo a tu proyecto, lo que yo hago básicamente es mostrarte de que si funcionan, por que no entrare en detalle sobre el lcd 2x16 por que hay bastante información sobre ella como funcionan pero hacerlo funcionar en tu propio proyecto es un trabajo no tan fácil.

este el Link donde lo encontré es una pagina en ingles:
http://winavr.scienceprog.com/example-avr-projects/avr-gcc-4-bit-and-8-bit-lcd-library.html

En mi caso yo use solo unas cuantas funciones: como verán esta es una imagen de la simulación que hice podría poner HOLA MUNDO para empesar pero no.

Pero eso no es todo trate de utilizar alguna funciones mas de la libreria, lo que me llamo la atención es poder digujar algunos caracteres diseñados por ti mismo y enviarlo al el LCD. bueno yo hice un pacman lo puse en una animación muy simple.


Bastante facil lo que hay que hacer primero cuando descargas un libreria es familiarizarte con sus funciones y ver cuales son sus limites pero antes debes tener en mente como funciona la LCD.

Este el Codigo escrito en ATmel Studio:

Este la cabecera de mi programa: esta para un crystal de 20MHz

Si te fijas bien estamos llamando la librería lcd_lib que siempre están con extensión punto h y donde incluimos  avr/pgmspace.h es un libreria propio del compilador esto nos sirve para separar un espacio de memoria en nuestro microcontrolador, en este caso va ser para la cadena de caracteres que vamos a utilizar.

si te fijas el codigo estoy dando a conocer lo que hacen las lineas de codigo y se puede ver la mapa de bits declaro como pacmanbit todo esto gracias a la libreria pgmspace.h, pero hasta hora no se ha utilizado ninguna función de la libreria lcd.


Este el codigo principal es bastante familiar para lo que han programado alguna vez en CCS gotoxy nos da la posecion y todo esta explicado con los comentarios que puse en cada linea del codigo principal.

bueno solo queda probarlo en protoboard si tienen alguna pregunta me lo hacen saber y tal vez pueda ayudarlos. 

MODO Fast PWM en ATmega328P

Estos microcontroladores de la familia AVR son bastantes buenos frente a los PIC uno de las razones  lo vamos desarrollar ahora mismo aquí. bueno cada uno tiene sus pros y contras.                                             Atmega328P tiene tres contadores o temporizadores que una de sus configuraciones es  en modo fast pwm de la siguiente forma: