lunes, 6 de septiembre de 2010

Hablando de Atmega's

Espero esto ayude a los colegas Electrónicos que tienen deseos de aprender a programar microcontroladores de la marca Atmel, especialmente los famosos ATMEGA8 , ATMEGA16, ATMEGA32, ATMEGA64, ATMEGA128, ATMEGA164P, ATMEGA324P. Cito dichos microcontroladores ya que tengo la fortuna de haberlos programado.
Me animé a escribir sobre dichos uC's ya que la información que encontré cuando inicie con el ATMEGA8 fue muy pobre, los libros que son muy pocos no me ayudaron en nada, así que solo emprendí la tarea de aprender a usar las más de 130, y muy buenas, instrucciones con las que cuentan estos uC's...


9 comentarios:

  1. Es interesante la programacion , especialmente si lo llevas con Cifuentes.

    ResponderEliminar
  2. Hola acabo de inciar en los Atmega tengo una duda con respecto
    a la función de PORTX y DDRx cual es la diferencia, no logro entenderla
    ya que se supone que DDRx pone en 1 (salida) y 0(entrada). Pero en si que
    onda con el PORTX que hace especificamente es el que controla que se prenda
    el bit.

    ??

    ResponderEliminar
    Respuestas
    1. Aqui puedes encontrar tu respuesta !
      http://avrperu.blogspot.com/2010/09/mi-primer-proyecto-atmega8-y-avr-studio.html

      Eliminar
  3. Cada puerto de I/O cuenta con 3 registros:
    DDRx permite configurar entradas ("1") y salidas ("0");
    PORTx permite poner la salida a "1" ó "0" cuando el pin es salida y también permite habilitar("1") la resistencia pull up de dicho pin o deshabilitarla("0") cuando el pin es entrada;
    PINx permite leer el estado del pin.


    Entonces cuando yo configuro mi puerto como entrada

    LDI R16,0x00 // COnfiguro mi puerto D como entrada
    OUT DDRB,R16

    LDI R17,0xFF
    OUT PORTD,R16 // Y Aqui hago que todos los pines del puerto D esten a 5v para activar las resistencias
    de PUll UP

    tengo dudas trate de explicar este pedacito de código con //, me podrías asesorar

    ResponderEliminar
  4. Si la interpretación del código que puse en las diagonales esta bien, es decír que

    LDI R16,0x00 // COnfiguro mi puerto D como entrada
    OUT DDRB,R16

    LDI R17,0xFF
    OUT PORTD,R16 // Y Aqui hago que todos los pines del puerto D esten a 5v para activar las resistencias
    de PUll UP

    dicho caso si yo quisiera poner interruptores en todo el puerto D, estarian habilitados con las resistencias de PULL UP. Ya que mas que nada sirve para ello la configuración de PORT, bueno, esa es la interpretaciónq ue le doy.

    ResponderEliminar
    Respuestas
    1. Es correcto lo que haces.. pero arriba debes poner DDRD y no DDRB.

      Eliminar
  5. Hola Jonathan tengo una duda cuantas operaciones en como flotante por segundo puede realizar el atmega8 a diferencia del atmega 32.

    ResponderEliminar
    Respuestas
    1. El ATmega8 y el ATmega32 tienen el mismo CPU, asi que los dos pueden realizar las misma cantidad de operaciones. La cantidad de ciclos que demora una operación (+-*/) puede variar. http://people.ece.cornell.edu/land/courses/ece4760/Math/Floating_point/

      Eliminar