¿Cómo puedo verificar mi programación de ATtiny25? Al no ver nada en los pines de salida

0

Soy un completo principiante en la programación de microprocesadores. Logré programar mi ATtiny25-20PU con AtmelStudio 7 y un AVR-ISP-MkII. Sin embargo, ¡no obtengo ninguna salida en mis pines de salida!

El ATtiny es nuevo y nunca se usó antes. Estoy bastante seguro de que la programación funcionó, ya que la firma del dispositivo podía leerse y el programador podía verificar el programa. Así que creo que el problema está en mi programa simple o en mi circuito aún más simple. Nunca he hecho esto antes y tal vez me he perdido algo obvio?

Todo el circuito (durante las pruebas, después de la programación) fue:

  • Conecte VCC a 5V.
  • Conecte GND a tierra.
  • Conecte RESET a tierra durante un tiempo, luego conéctelo a VCC. También intenté hacer esto usando un botón pero no observé ninguna diferencia.

¡Pero PB3 y PB4 están bajos todo el tiempo! Este es el programa:

#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>    

int main(void) {
    DDRB |= 1<<PB4;
    while (1) 
    {
        DDRB |= 1<<PB3;
        _delay_ms(200);
        DDRB &= ~(1<<PB3);
        _delay_ms(200);
    }
}

Así que espero que el PB3 suba y el PB4 produzca una onda cuadrada. ¿Qué puedo hacer para mantener la resolución de problemas? ¿O verifico que realmente logré programar el ATtiny? Estoy completamente atascado.

    
pregunta Anna

1 respuesta

3

DDRx establece la dirección. PORTx determina el nivel de salida y la presencia de la resistencia de subida de entrada.

int main(void)
{
    DDRB |= _BV(PB4);
    while (1) 
    {
        PORTB |= _BV(PB3);
        _delay_ms(200);
        PORTB &= ~_BV(PB3);
        _delay_ms(200);
    }
}
    
respondido por el Ignacio Vazquez-Abrams

Lea otras preguntas en las etiquetas