TODOPIC

Otros Microcontroladores / Dispositivos programables => Microcontroladores 8 bits => Mensaje iniciado por: The-Snake en 04 de Octubre de 2010, 10:12:47

Título: No usa el oscilador externo
Publicado por: The-Snake en 04 de Octubre de 2010, 10:12:47
Buenos dias. Tengo un problema con los micros de atmel, hace poco he empezado a programarlos en C usando el AvrStudio, y como programador el USBtinyISP, consigo programar el micro y hacer que me parpade el led, pero me usa el oscilador interno, como hago para que me use el oscilador externo? este es el codigo:

Código: [Seleccionar]
#define F_CPU 12000000UL                                    /* Clock Frequency = 12Mhz */

#include <inttypes.h>
#include <avr/io.h>
#include <util/delay.h>

int main(){                         // The main function

DDRB = 0b11111111;                    // Set all the pins of PortB as output

while (1) {                        // Set up an infinite loop

    PORTB = 0b10000000;                    // Turn on LED1
    _delay_ms(100);                        // Wait
    PORTB = 0b00000000;                    // Turn on LED2
    _delay_ms(100);                        // Wait
    }

}

E intenado buscar solución por google, pero nose cual es el problema, tal vez a la hora de programarlo, pongo el comando que uso:

avrdude -c usbtiny -p atmega32 -U flash:w:prueba.hex

Como microcontrolador estoy probando el codigo en un ATmega32 y un ATtiny2313 y no va. Seguro que es algun fallo tonto/de novato...




Título: Re: No usa el oscilador externo
Publicado por: jonathanPIC888 en 04 de Octubre de 2010, 11:53:02
Hola como andas Snake  :mrgreen:

Mirá yo empezé con los ATMEL hace una semana y me está llendo muy bien , programando con WINAVR y PK2AVRISP.

Para poder usar un cristal externo tenés que configurar los fuses del microcontrolador.

Como hacerlo a ojo es muy problematico en algunos casos , existe una herramienta WEB :
AVR WEB FUSE CALCULATOR (http://www.engbedded.com/fusecalc)

Acá te deja que selecciones el chip y te da opciones para configurarlo.

Luego mejor no uses el AVRDUDE de forma directa sino mejor usando la suite AVR burn O mat.

Este programa que corre bajo java, te sirve para programar tus micros usando AVR dude sin necesidad de la  linea de comandos.
AVR BURN O MAT (http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_avrdude_gui_en.html)

Con este programa podés configurar tus fuses usando como referencia la página de configuración de fuses online.


Para saber más sobre los fusibles te recomiendo busques info en google, vas a encontrar mucho.

Saludos.
Título: Re: No usa el oscilador externo
Publicado por: The-Snake en 04 de Octubre de 2010, 23:02:13
Muchas gracias por la información, estos de los fuses es un mundo jeje.  el programa AVR BURN O MAT  no consigo hacerlo funcionar, por ahí encontré otro el SinaProg que me va muy bien, la verdad es que estaba aburrido con la linea de comando del avrdude y de estar copiando a C:\ los *.hex cada ves que modificaba algo.


Por cierto que guía estas siguiendo?
Título: Re: No usa el oscilador externo
Publicado por: jonathanPIC888 en 05 de Octubre de 2010, 21:49:20
No estoy siguiendo ninguna guía, solo me senté a experimentar y las cosas de a poco van saliendo  ;-)
Título: Re: No usa el oscilador externo
Publicado por: The-Snake en 06 de Octubre de 2010, 05:14:41
ok gracias.