TODOPIC
Otros Microcontroladores / Dispositivos programables => Microcontroladores 8 bits => Mensaje iniciado por: mariano_pic en 31 de Enero de 2007, 13:00:35
-
Hola amigos estoy comensando en estos foros un saludo a todos y saben encontre algunas cositas que pueden servir a todos no se si ya las tienen pero ahi va:
Lo primero es que el compilador win avr se consigue en http://sourceforge.net/ pero hay que buscar la version windows que es la que se integra con el aStudio4b460 y hay que instalar el aStudio412SP4b498 que es el ultimo servise pack para avr studio si es que no hay uno posterior, o sea primero winavr y luego el servise pack, luego el win avr y listo a trabajar en c.
A veses hay que configurar el avr studio, pero no recuerdo es que hase dias no lo hago.
Tambien encontre un tutorial para programar el atmega 8 en c :-/ esta en ingles pero ahi se va: http://www.avrtutor.com/tutorial/contents/contents.htm
bueno espero haber ayudado en algo, y si alguien tiene algo mejor por favor quisiera saberlo.
mariano_pic :mrgreen:
-
Bueno mariano, pues estos AVR les tengo ganas desde hace rato, apenas tenga tiempo, te sigo en el camino.
Saludos!
-
hola amigo PICmouse, te cuento que los AVR son supereconomicos y estoy hasiendo lo que llaman una migracion, bueno es una muy pero muy lenta, pero espero a partir del proximo año dedicar la mayoria de mis proyectos a estos ultimos, y bueno si tu me sigues tengo mucha informacion que conpartir el problema es que no la tengo muy organizada y bueno cuando la organise veremos a ver. Asi que a la orden.
otra cosa tu eres de colombia, podrias decir de que parte por que yo soy de barranquilla y bueno si estas serca asta podriamos haser intercambio de material.
a y si puedes mira mi paginita, es humilde pero es mi mejor exfuerso. un saludo
mariano_pic
http://es.geocities.com/mariano_pic/
-
Bienvenido Mariano, gracias por los links. 8)
-
Com respecto a la programacion en C para Micros AVR de atmel les dejo un links muy interesante:
http://www.olimex.cl/present.php?page=tut_avr_mt_intro&c=1
Este tutorial es para una placa con un avr 2313, tiene la ventaja que esta en español y es muy facil de entender por lo cual
podria ser un buen punto de partida para empezar siempre y cuando se tengan conocimentos previos de C.
Nota: ir a le seccion tutoriales en la misma pagina para ver mas ejemplos.
Saludos espero sea de utilidad
-
hola 8) aqui les dejo un pequeño programa que lee los swiches conectados al PORTA y
prende los leds que estan conectados al PORTB (software :AVRstudio + winavr)
// Descripcion: programa simple en c para el uC ATMEGA16
//Este programa premite al usuario prender LEDs presionando los swiches
/****************************************************************/
#include <avr/io.h> // archivo cabecera AVR para IO ports
int main(void)
{ unsigned char i; //variable temporal
DDRA=0x00; //pone PORTA para entrada
DDRB=0xFF; //pone PORTB para salida
PORTB=0x00; //prende todos los LEDs inicialmente
while(1)
{ // lee entrada del PORTA
// este puerto sera conectado a los 8 switches
i=PINA;
// envia salida a PORTB
//este puerto sera conectado a los 8 leds
PORTB=i;
}
return 1;
}
:-) :-) :-) haber mandense otro programita :mrgreen:
-
yo me quede con los pic pero seguro migsantiago te contesta :D
-
Hola
Yo sólo sé programar el at90s1200 en lenguaje ensamblador y sólo porque en la escuela nos lo enseñaron, pero lo mío son los pics. :mrgreen:
-
:D
-
Hola a todos,
Bueno, este tema de programar los AVR usando el C me interesa, sobre todo la parte de leer y escribir la EEPROM, las SRAM, y el uso de las USART y si alguien tiene una rutina acerca de ello. Si pudieran explicarlas.
Gracias!:)
-
Teniendo en cuenta el compilador AVRGCC
Empecemos por la manipulacion de datos en la EEPROM
Existen dos pasos basicos
1-Declaracion
2-Uso
Declaracion:
median la directiva EEMEM le indicamos al compilador que la variable a declarar
estara alojada en la seccion EEPROM del microcontrolador
Entonces, si queremos tener una variable en dicha seccion debemos declarar lo siguiente:
[tipo] EEMEM variable = [valor]
Por ejemplo, para guardar un char seria:
char EEMEM EEPROM_dato_char = 0x30 // Que seria el numero 0 (cero)
Asi podemos declarar cualquier tipo de variable
Por ejemplo:
unsigned char EEMEM EEPROM_dato_uchar = 0x30
int EEMEM EEPROM_int_dato = 0x7FFF
unsigned EEPROM_int uint_dato = 0xFFFF
echo esto, el compilador generara las posiciones de memoria dentro de la EEPROM con los valores asignados
nota: Particularmente uso el prefijo EEPROM_ para identificar el origen de la variable en el codigo
Uso:
Para acceder a estas variables, se deben invocar las macros definidas en AVRGCC
Dichas macros nos facilitan la codificacion del acceso.
eeprom_read_byte(&[variable]) Para leer un byte
eeprom_read_word(&[variable]) Para leer un int
Por ejemplo:
void MiRutina(void)
{
char char_epprom;
unsigned char uchar_eeprom;
int int_eeprom;
unsigned int uint_eeprom;
//leemos las variables
char_epprom = eeprom_read_byte(&EEPROM_dato_char)
uchar_eeprom = eeprom_read_byte(&EEPROM_dato_uchar)
int_eeprom = eeprom_read_word(&EEPROM_dato_int)
uint_eeprom = eeprom_read_word(&EEPROM_dato_uint)
}
Para modificar las variables ubicadas dentro de la EEPROM
hay que utilizar las macros siguientes:
eeprom_write_byte(&[variable eeprom], [nuevo valor]);
Para el caso de un byte
eeprom_write_word(&[variable eeprom], [nuevo valor]);
Para el caso de dos bytes o int
Por ejemplo:
void MiRutina(void)
{
char char_epprom = 0x35;
unsigned char uchar_eeprom = 0x35;
int int_eeprom = 0x1FFF;
unsigned int uint_eeprom = 0x8FFF;
//leemos las variables
eeprom_write_byte(&EEPROM_dato_char, char_epprom)
eeprom_write_byte(&EEPROM_dato_uchar, uchar_eeprom)
eeprom_write_word(&EEPROM_dato_int, int_eeprom)
eeprom_write_word(&EEPROM_dato_uint, uint_eeprom)
}
Saludos!