Autor Tema: Me decido por Atmel  (Leído 9522 veces)

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

Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 311
Re:Me decido por Atmel
« Respuesta #15 en: 27 de Octubre de 2016, 08:10:32 »
Ok Stk500, mil gracias me pongo en la tarea.

 :-)

Saludos

Aqui te pongo un Link en español, con el tutorial AVR GGC para Linux, aunque yo no uso Linux  ;-)
pero se' que te va a servir muchos y te saca de dudas
http://www.linuxfocus.org/Castellano/Archives/lf-2004_11-0352.pdf

Aqui te dejo un link para calcular los Fuses, asi sabra cuando le hace cambios a los Fuses y ponerlo en previo o DEFAULT..

http://www.engbedded.com/fusecalc/

Espero te sirva!!!

Saludos

Mil gracias, ya hoy le damos el hola mundo al Atmega16  :-/ ..de nuevo gracias a todos por sus aportes al foro y a este tema  ((:-))

saludos

Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 311
Re:Me decido por Atmel
« Respuesta #16 en: 27 de Octubre de 2016, 12:44:21 »
Hola Atmel16...
 ((:-))  ((:-))


Feliz de la vida  :-/ :-/  ((:-))

Muchas gracias sacaré un espacio para sacar un buen tutorial..

Saludos

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Re:Me decido por Atmel
« Respuesta #17 en: 27 de Octubre de 2016, 14:46:43 »
me alegro que le tenga el gustazo a los atmel ya!!! :P

Saludos

Desconectado AleSergi

  • PIC16
  • ***
  • Mensajes: 214
Re:Me decido por Atmel
« Respuesta #18 en: 27 de Octubre de 2016, 15:20:10 »
Si te sirve de dato,  hice mi primer imcursión en los atmel con un arduino nano v3 que aprendí a programar directamente en C.  El lenguaje de arduino me limitaba con el asunto de las interrupciones.

Después me compré varios atmega328 y attiny2313 con encapsulado pdip,  y no use más el arduino.  Habia iniciado el asunto en un linux ubuntu con la ide de arduino instalada,  como funcionó, complete instalando el avr-gcc y lo manejaba salvajemente desde la línea de comando,  según las indicaciones de:

https://balau82.wordpress.com/2011/03/29/programming-arduino-uno-in-pure-c/

Suelo cargar sus programas con bootloader que supe encontrar a 1, 4 y 8mhz, sin cristal externo.  Optiboot es la palabra para su busqueda por la web.  Empleando esas interfases usb-serial/ttl (ft232 y yerbas)

Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 311
Re:Me decido por Atmel
« Respuesta #19 en: 28 de Octubre de 2016, 09:24:25 »
Si te sirve de dato,  hice mi primer imcursión en los atmel con un arduino nano v3 que aprendí a programar directamente en C.  El lenguaje de arduino me limitaba con el asunto de las interrupciones.

Después me compré varios atmega328 y attiny2313 con encapsulado pdip,  y no use más el arduino.  Habia iniciado el asunto en un linux ubuntu con la ide de arduino instalada,  como funcionó, complete instalando el avr-gcc y lo manejaba salvajemente desde la línea de comando,  según las indicaciones de:

https://balau82.wordpress.com/2011/03/29/programming-arduino-uno-in-pure-c/

Suelo cargar sus programas con bootloader que supe encontrar a 1, 4 y 8mhz, sin cristal externo.  Optiboot es la palabra para su busqueda por la web.  Empleando esas interfases usb-serial/ttl (ft232 y yerbas)

Muchas gracias por la ayuda.  :)

Ahora tengo una duda, cuando uso la función  _delay_ms(), parece que no funcionara correctamente, entiendo que no da más de 250ms usando el inRC a 1MHz, pero me da la sensación que no llega ni a eso he medido y obtengo una frecuencia en el puerto DDRD0 de 7Hz con los 250ms, por supuesto agrego #define F_CPU  1000000  antes de agregar la libreria delay, y cuando compilo me da un warning sin  errores..no se si es que me falta configurar algo en el compilador o es algo que tenga que ver con los fuses que aún no toco..
Alguna sugerencia se los agradezco mucho.

Saludos.

Desconectado AleSergi

  • PIC16
  • ***
  • Mensajes: 214
Re:Me decido por Atmel
« Respuesta #20 en: 29 de Octubre de 2016, 14:05:06 »
Que raro que no te den los tiempos,  estás midiendo en tiempo real ¿no?,  en el simulador,  nunca funcionan, 
Al #define F_CPU xxxxxx lo suelo poner antes que cualquier cosa en mi código.
Subi en un archivo de texto comprimido esas advertencias de tu compilador.

Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 311
Re:Me decido por Atmel
« Respuesta #21 en: 31 de Octubre de 2016, 12:45:27 »
Que raro que no te den los tiempos,  estás midiendo en tiempo real ¿no?,  en el simulador,  nunca funcionan, 
Al #define F_CPU xxxxxx lo suelo poner antes que cualquier cosa en mi código.
Subi en un archivo de texto comprimido esas advertencias de tu compilador.

Hola.
Bueno parece ser que le problema es el compilador, por que con el Eclipse funciona los tiempos definidos muy bien..parece que hay que configurar bien el codeblocks, o podría ser un bug de la versión 16.01..ya veremos..
Por estos días he estado ocupado en actividades familiares, solo hasta hoy volví para ver cuál era el problema..ya comienzo a escalar con esta maravilla de procesadores,,,,seriamente estoy muy contento con esta familia... :-) :mrgreen: ((:-))

Gracias y a estudiar...

Saludos

Desconectado Jorge555

  • PIC18
  • ****
  • Mensajes: 496
    • JMN
Re:Me decido por Atmel
« Respuesta #22 en: 31 de Octubre de 2016, 13:38:42 »
Te dejo un enlace mio: http://elecrab.com/tutoriales para empezar con atmel de 8 bits que no he continuado escribiendo.

Los microcontroladores de 8 bits están bien para empezar y tener una idea de que es un microcontrolador, pero a partir de ahí te recomiendo que mires otro tipos de microcontroladores como ARM Cortex-M que te darán muchas más posibilidades de proyectos, y a día de hoy es lo que más se usa.

Saludos.

Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 311
Re:Me decido por Atmel
« Respuesta #23 en: 31 de Octubre de 2016, 13:50:30 »
Muchas gracias Jorge555..si sigo con mi estudio de esta familia creo que en unos pocos meses estaré con los ARM que es la idea que también tenía.. :D..y gracias por tus tutoriales....

Saludos.

PD: Una pena el enlace no va  :? ..si la tienes actualizada o los tutoriales por ahí a la mano te los agradecería enormemente.

Saludos

Desconectado AleSergi

  • PIC16
  • ***
  • Mensajes: 214
Re:Me decido por Atmel
« Respuesta #24 en: 31 de Octubre de 2016, 15:45:39 »
Si funka la página de de Jorge.  Dale al botón menú y aparecen los enlaces.

Esos micros ARM tienen la contra que no hay variedad en encapsulado pdip.  Ahi queda excluido el "hobbista". 
En Argentina supe encontrar algunos en esas plaquitas de prototipos.  Pero no me decido,  más bien porque no tengo la necesidad.  Aunque si la curiosidad.

Para lo único que se me viene a la cabeza uN ARM en  caso es investigar un medidor de energía o un voltímetro/amperímetro true RMS empleando el conversor de 12bit y más frecuencia de muestreo que suelen tener.

Con esto del ADC los Atmega328p vienen en desventaja frente a los pic,  resulta que tienen una velocidad menor de muestreo.

Aunque segun dicen se comportsn mejor frente al ruido.  Cosa que experimentaré porque tengo un cacharro con pic que no anda ni para atrás.  Es un velocímetro de cadencia.  Cuando enciendo el motor de la moto,  enloquece....

Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 311
Re:Me decido por Atmel
« Respuesta #25 en: 08 de Noviembre de 2016, 12:59:09 »
Hola de nuevo.
Ya solucioné el problema con el CodeBlocks, que creo que va a ser el que voy a usar..
La solución es la siguiente:
Aclaro que tengo la versión 16.01.

Me voy a: Settings >>  Compiler
Acá se supone que debemos tener seleccionado el  "GNU GCC Compiler for AVR"

luego seleccionamos la pestaña "Search directories"  luego en "Compiler" y editamos la ubicación asi:

Está es "/usr " y editamos asi: "/usr/lib/avr/include/avr" ..queda este punto asi:



Luego seleccionamos la pestaña continua llamada "Linker" y editamos con lo siguiente:

"/usr/lib/avr/lib/"




Pongan tal como está la imagen sin poner demás un "/" ......Espero sirva de ayuda..

Saludos






Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 311
Re:Me decido por Atmel
« Respuesta #26 en: 10 de Noviembre de 2016, 23:08:15 »
Hola de nuevo, voy a poner el siguiente código para saber si se puede  mejorarñ se trata de usar un sw rotatorio, uso la referencia KY-040 para arduino:
Uso el puerto D de la siguiente forma:
D0 = salida hacia un led indicando la dirección hacia la derecha
D1= Salida hacia un led indicando la dirección hacia la izquierda
D6= entrada A del Sw activando las pullups y agregando un RC para los antirebotes.
D5= entrada B del Sw activando las pullups y agregando un RC para los antirebotes.

Como no me he podido acostumbrar a usar los puertos con el desplazamiento de bits y de usar mascaras  decidí usar una estructura de manejo de bits, si hay alguna sugerencia para hacerlo más corto y comodo acepto sugerencias. :mrgreen:

Código: [Seleccionar]
#define F_CPU 10000000UL
#include <avr/io.h>
#include <util/delay.h>



typedef struct DDDbits_t{

unsigned char dd0  :1;
unsigned char dd1  :1;
unsigned char dd2  :1;
unsigned char dd3  :1;
unsigned char dd4  :1;
unsigned char dd5  :1;
unsigned char dd6  :1;
unsigned char dd7  :1;

}volatile *DDDbits;


typedef struct PDbits_t{

unsigned char PO0  :1;
unsigned char PO1  :1;
unsigned char PO2  :1;
unsigned char PO3  :1;
unsigned char PO4  :1;
unsigned char PO5  :1;
unsigned char PO6  :1;
unsigned char PO7  :1;

}volatile *PDbits;

typedef struct PINDbits_t{

unsigned char PI0  :1;
unsigned char PI1  :1;
unsigned char PI2  :1;
unsigned char PI3  :1;
unsigned char PI4  :1;
unsigned char PI5  :1;
unsigned char PI6  :1;
unsigned char PI7  :1;

}volatile *PIDbits;

#define PORTDbits (*(PDbits)_SFR_MEM_ADDR(PORTD))
#define DDRDbits (*(DDDbits)_SFR_MEM_ADDR(DDRD))
#define PINDbits (*(PIDbits)_SFR_MEM_ADDR(PIND))

#define INPUT 0
#define OUTPUT 1

#define ON 1
#define OFF 0


void configurar_puertos();

void configurar_puertos(){


    DDRDbits.dd0=OUTPUT;//Puerto D0 como salida.
DDRDbits.dd1=OUTPUT; //Puerto D1 como entrada.
DDRDbits.dd5=INPUT;  //D5 entrada
DDRDbits.dd6=INPUT;  //D6 Entrada
PORTDbits.PO5=ON;   //Activamovs PULL-UP en el puertoD5.
PORTDbits.PO6=ON;   //Activamovs PULL-UP en el puertoD6.
}

#define Encoder_A PINDbits.PI6
#define Encoder_B PINDbits.PI5

int main(void)
{

    // Insert code
    configurar_puertos();

    _delay_ms(100);
    while(1){

        if(Encoder_A==0){         //Gira el encoder hacia
              if(Encoder_B==0){   // la derecha?
                  PORTDbits.PO0 = ON;
                  _delay_ms(100);

              }
        }

            if(Encoder_A==1) {     //Gira el encoder hacia
              if(Encoder_B==0){   // la izquierda?
                  PORTDbits.PO1 = ON;
                  _delay_ms(100);
                        }
            }

                PORTD &= ~(1<<PD0);  // no he podido aprenderme este método
                PORTD &= ~(1<<PD1);



            }


    return 0;
}

Las estructuras las aprendí por estos días en un blog y con el fabuloso tutorial de Avr de Felix 8)..

Saludos y agradezco sugerencias que me puedan enseñar.

« Última modificación: 10 de Noviembre de 2016, 23:11:07 por marvicdigital »

Desconectado MaiJuanEm

  • PIC10
  • *
  • Mensajes: 2
Re:Me decido por Atmel
« Respuesta #27 en: 25 de Enero de 2021, 18:16:07 »
Buenas gente, Les tengo una consulta, Tengo Windows 10 y quisiera saber a traves de que harware puedo bajar el  programa del Eclipse al AVR. ¿Sera que el usbasp sera suficiente para esto?
El Eclipse ya lo tengo preparado con su plugin de AVR. Es mas, el programa lo simulo en Proteus, pero ya es hora de poder verlo funcionar de enserio.
De nuevo, Gracias y Saludos.

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:Me decido por Atmel
« Respuesta #28 en: 25 de Enero de 2021, 21:35:31 »
Que tal MaiJuanEm,

Para realizar la programación del AVR (bajar el archivo hex a la memoria del microcontrolador); como bien mencionas necesitas del programamdor USBasp. Pero el software de programamción es el AVRDude y existe un IDE para este que se llama AVRDUDESS. Creo que el AVRDude, lo puedes integrar a Eclipse, pero yo nunca lo he usado así. Puedes buscar en el interner cómo integrar el AVRdude a Eclipse, hay bastente información al respecto.
Pero lo más sencillo es usarlo con su "propio" IDE, que es el AVRDUDESS.

Saludos,

elreypic.


 

anything