Autor Tema: AVR Studio4 y WinAVR  (Leído 5138 veces)

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

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4919
AVR Studio4 y WinAVR
« en: 18 de Diciembre de 2009, 11:01:58 »
Hola amigos!
Estoy aprendiendo a programar en C con el compilador winAVR, despues de hacer Test con los puertos y encendiendo led y usando pulsadores hata ahi muy bien, ahora quiero hacer una comunicacion UART con la pc y el Atmega16, pero al compilar el codigo me tira un erroro que desconoco, quizas alguein por aqui me echa una mano.
Código: [Seleccionar]
#include <avr/io.h>

#include <util/delay.h>

#include <stdio.h>

#ifndef F_CPU

#define F_CPU 1000000

#endif

//set desired baud rate

#define BAUDRATE 9600

//calculate UBRR value

#define UBRRVAL ((F_CPU/(BAUDRATE*16UL))-1)

char n, //number numero

c; // mostramo el estado en pantalla

int main(void)

{

//ponemnos  el Baud rate

UBRRL=UBRRVAL; //valor de Bytes bajos

UBRRH=(UBRRVAL>>8); //valor de Bytes altos

//ponemos el formatos de los Frame: asynchronous mode,no parity, 1 stop bit, 8 bit size  poner tipo de formato de Dato

UCSRC=(1<<URSEL)|(0<<UMSEL)|(0<<UPM1)|(0<<UPM0)|

(0<<USBS)|(0<<UCSZ2)|(1<<UCSZ1)|(1<<UCSZ0);

// activamos transmisor y receptor

UCSRB=(1<<RXEN)|(1<<TXEN);

DDRA=0x00; //all A port pins as input  todos los puertos A como entrada

PORTA=0xFF; //Enable internal Pull-Up resistors activamos la pull up interna

DDRB=0xFF; //All B port pins as output  todos puertos B como salida

while(1)

{

c=1; //start with first LED  iniciamos el primer led

while(PINA==0xFF) // esperamos para presionar

{

if (c==0) c=1; //if light passed all leds start over

PORTB=~c; //LED on

_delay_ms(100);//short delay

n++; //  incrementamos el valor del numero

c=c<<1; //desplazamos los led

}

//esperamos por el vaciado del buffer de transmision

while (!(UCSRA&(1<<UDRE))){};

UDR=n; // enviamos el numero a la UART

PORTB=~n; //y mostramos el numero con led en (binary)

_delay_ms(200); // , delay largo

PORTB=0xFF; //  apagamos todos los LED

}

return 0;

}
 

Desconectado ma4826

  • PIC16
  • ***
  • Mensajes: 130
Re: AVR Studio4 y WinAVR
« Respuesta #1 en: 18 de Diciembre de 2009, 12:05:29 »
Puedes poner el código de error que te da, yo lo he compilado con el avr-gcc que viene con Ubuntu 8.10 y sólo me da este warning

Código: [Seleccionar]
In file included from main.c:3:
/usr/lib/gcc/avr/4.3.0/../../../../avr/include/util/delay.h:85:3: warning: #warning "F_CPU not defined for <util/delay.h>"

Y poniendo el #include <util/delay.h> después de

Código: [Seleccionar]
#ifndef F_CPU

#define F_CPU 1000000

#endif

se soluciona.

Saludos,

Miguel Ángel.


万人の友は誰の友でもない。

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4919
Re: AVR Studio4 y WinAVR
« Respuesta #2 en: 18 de Diciembre de 2009, 12:51:23 »
muchas gracia ma4826
lo que no comprendo es que lo estaba compilando con la  Build666 version 4,17 y me daba error, ahora la compiler en mi Portatil que tengo la  Build 638  Version 4,16, con esta ultima solo me da un Warnung(un aviso) como tu dice.
ahora lo voy a intentarlo simularlo con el Proteus.
Muchas una vez mas.
Saludos

Desconectado ferwla.ing

  • PIC10
  • *
  • Mensajes: 1
Re: AVR Studio4 y WinAVR
« Respuesta #3 en: 10 de Febrero de 2010, 16:41:39 »
Hola a todos, necesito utilizar algunas librerias que me baje, AVRlib, donde viene algunas librerias muy interesantes, sin embargo no se donde copiar los archivos .h para utilizarlos, si alguien me puede dar luces con este problemita, gracias>.........

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4919
Re: AVR Studio4 y WinAVR
« Respuesta #4 en: 10 de Febrero de 2010, 16:56:30 »
pues la bajaste mal, ya que viene con un instalador, debe leer alli donde te la bajaste os me dice donde la bajaste para asi poder ayudarte.
Saludos