TODOPIC

Otros Microcontroladores / Dispositivos programables => Microcontroladores 8 bits => Mensaje iniciado por: mariano_pic en 31 de Enero de 2007, 13:00:35

Título: PROGRAMACION AVR EN C
Publicado 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:
Título: Re: PROGRAMACION AVR EN C
Publicado por: LABmouse en 31 de Enero de 2007, 16:47:24
Bueno mariano, pues estos AVR les tengo ganas desde hace rato, apenas tenga tiempo, te sigo en el camino.

Saludos!
Título: Re: PROGRAMACION AVR EN C
Publicado por: mariano_pic en 31 de Enero de 2007, 17:46:39
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/
Título: Re: PROGRAMACION AVR EN C
Publicado por: migsantiago en 31 de Enero de 2007, 19:46:55
Bienvenido Mariano, gracias por los links.  8)
Título: Re: PROGRAMACION AVR EN C
Publicado por: keeaneu en 06 de Febrero de 2007, 22:34:19
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
Título: Re: PROGRAMACION AVR EN C
Publicado por: betito_mmf en 25 de Diciembre de 2008, 22:55:49
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:
Título: Re: PROGRAMACION AVR EN C
Publicado por: mariano_pic en 27 de Diciembre de 2008, 00:32:11


        yo me quede con los pic pero seguro migsantiago te contesta  :D
Título: Re: PROGRAMACION AVR EN C
Publicado por: migsantiago en 27 de Diciembre de 2008, 14:49:42
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:
Título: Re: PROGRAMACION AVR EN C
Publicado por: mariano_pic en 27 de Diciembre de 2008, 15:06:12


            :D
Título: Re: PROGRAMACION AVR EN C
Publicado por: RayUsX100 en 26 de Enero de 2009, 19:51:12
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!:)
Título: Re: PROGRAMACION AVR EN C
Publicado por: FuYiVape en 09 de Febrero de 2009, 17:33:38
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:

   
Código: [Seleccionar]
[tipo] EEMEM variable = [valor]
Por ejemplo, para guardar un char seria:

   
Código: [Seleccionar]
char EEMEM EEPROM_dato_char = 0x30 // Que seria el numero 0 (cero)
Asi podemos declarar cualquier tipo de variable
Por ejemplo:

   
Código: [Seleccionar]
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.

   
Código: [Seleccionar]
eeprom_read_byte(&[variable]) Para leer un byte
eeprom_read_word(&[variable]) Para leer un int

Por ejemplo:

Código: [Seleccionar]
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:

Código: [Seleccionar]
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!