Arduino y ATmega32

Hola amigos,

Los útimos días he estado trasteando con el soft de Arduino y Atmega32.. el fin de hacer esto es aprovechar las muchas librerias que tiene el arduino para usarlos con mis queridos atmega... :)

He seguido el tutorial en este link:
http://www.instructables.com/id/Using-Atmega32-with-Arduino-IDE/?lang=es

Y me ha funcionado todo a la primera!!... o, al menos eso pensaba... he podido compilar y hacer funcionar un LCD display 16x2 y un Teclado Matricial, tanto en simulación como en físico con oscilador interno a 1MHZ y a 8MHZ y puedo dar fe que si funciona; sin embargo al intentar hacerlo a 16MHZ (con cristal externo) el display no me funciona correctamente... He buscado los posibles errores en el programa y también variado la configuración de fusibles sin poder encontrar absolutamente nada...

He podido revisar la libreria LiquidCrystal.h de arduino y aún no me figuro donde podría haber un error, y quisiera que pudieran ayudarme a encontrar el mismo.

El programa en cuestión es este:

Código:
// include the library code:
#include <LiquidCrystal.h>
#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
  {
    \'1\',\'2\',\'3\'        }
  ,
  {
    \'4\',\'5\',\'6\'        }
  ,
  {
    \'7\',\'8\',\'9\'        }
  ,
  {
    \'#\',\'0\',\'*\'        }
};

byte rowPins[ROWS] = {
  20, 19, 18, 17}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {
  23, 22, 21}; //connect to the column pinouts of the keypad

Keypad teclas = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(30, 28, 27, 26, 25, 24);

void setup() {
  // set up the LCD\'s number of columns and rows: 


  lcd.begin(16, 2);
  lcd.print("LCD OK"); //mensaje Inicial
}

void loop() {

  char option; 
  lcd.print("Opcion?");

  do
    option = teclas.getKey(); //verifica si hay algo pulsado y pasa
  while(option==NO_KEY);

  //lcd.clear(); 
  
  lcd.print(option);

  delay(500);
  lcd.clear();
}
...
 
He estado aprendiendo mucho sobre arduino y su configuración en boards.txt y pins_h... para poder aprovechar las librerias de arduino en un Atmega32 -tal como habia indicado anteriormente- .. sin embargo en los últimos días estado probando unos archivos llamados "Sanguino" que justamente permiten aprovechar las librerias de arduino en un Atmega32... :D

Hay que reconocer que estaba intentando volver a inventar la rueda..:oops: porque antes que yo alguién ya lo había hecho... les dejo los links de donde descargué la configuración por si alguién más le interesa... También me di cuenta que es posible usarlo con otros varios atmega no-arduinos... Les aclaro que en mi búsqueda encontré varias opciones, pero este es el que me resultó algo más completo que los otros... Aún lo estoy aprendiendo y viendo la distribución de pines... en fin va el link por si alguién mas le sirve:

http://www.bhashatech.com/blog/embedded/sanguino-atmega16-atmega32-support/

Saludos.
 
Atrás
Arriba