Autor Tema: PROGRAMACION AVR EN C  (Leído 17490 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado mariano_pic

  • PIC18
  • ****
  • Mensajes: 498
    • Software Electronica Microncontroladores
PROGRAMACION AVR EN C
« 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:
Necesitas ayuda para tu proyecto electronico?
buscame, tal ves pueda colaborarte.
Blog: http://electronicosembebidos.blogspot.com.co/
mail: electronicosembebidos@gmail.com
Mi grupo de facebook: https://www.facebook.com/groups/ProgramandoPics/

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: PROGRAMACION AVR EN C
« Respuesta #1 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!

Desconectado mariano_pic

  • PIC18
  • ****
  • Mensajes: 498
    • Software Electronica Microncontroladores
Re: PROGRAMACION AVR EN C
« Respuesta #2 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/
Necesitas ayuda para tu proyecto electronico?
buscame, tal ves pueda colaborarte.
Blog: http://electronicosembebidos.blogspot.com.co/
mail: electronicosembebidos@gmail.com
Mi grupo de facebook: https://www.facebook.com/groups/ProgramandoPics/

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: PROGRAMACION AVR EN C
« Respuesta #3 en: 31 de Enero de 2007, 19:46:55 »
Bienvenido Mariano, gracias por los links.  8)

Desconectado keeaneu

  • PIC10
  • *
  • Mensajes: 1
Re: PROGRAMACION AVR EN C
« Respuesta #4 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

Desconectado betito_mmf

  • PIC10
  • *
  • Mensajes: 13
Re: PROGRAMACION AVR EN C
« Respuesta #5 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:
:-) :-) :-)  HOY SERE MEJOR QUE AYER  :mrgreen:

Desconectado mariano_pic

  • PIC18
  • ****
  • Mensajes: 498
    • Software Electronica Microncontroladores
Re: PROGRAMACION AVR EN C
« Respuesta #6 en: 27 de Diciembre de 2008, 00:32:11 »


        yo me quede con los pic pero seguro migsantiago te contesta  :D
Necesitas ayuda para tu proyecto electronico?
buscame, tal ves pueda colaborarte.
Blog: http://electronicosembebidos.blogspot.com.co/
mail: electronicosembebidos@gmail.com
Mi grupo de facebook: https://www.facebook.com/groups/ProgramandoPics/

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: PROGRAMACION AVR EN C
« Respuesta #7 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:

Desconectado mariano_pic

  • PIC18
  • ****
  • Mensajes: 498
    • Software Electronica Microncontroladores
Re: PROGRAMACION AVR EN C
« Respuesta #8 en: 27 de Diciembre de 2008, 15:06:12 »


            :D
Necesitas ayuda para tu proyecto electronico?
buscame, tal ves pueda colaborarte.
Blog: http://electronicosembebidos.blogspot.com.co/
mail: electronicosembebidos@gmail.com
Mi grupo de facebook: https://www.facebook.com/groups/ProgramandoPics/

Desconectado RayUsX100

  • PIC10
  • *
  • Mensajes: 1
Re: PROGRAMACION AVR EN C
« Respuesta #9 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!:)

Desconectado FuYiVape

  • PIC12
  • **
  • Mensajes: 69
    • Electronica y Sistemas
Re: PROGRAMACION AVR EN C
« Respuesta #10 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!


 

anything