Programa en C para un Atmel 164P

#1
Buenas Días, estaba empezando a programar un atmel 164P el cual lo que queria que haga es testear el bit 0 del pin B y si se encuentra en un 0 logico mandar una señal de 1 lògico al pin 0 del puerto A, pero no me vale en la simulaciòn, espero que me digan que esta mal en mi codigo aquí les dejo....

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

int main(void)
{
DDRB=0x00;
PORTB=0xFF;
DDRA=0xFF;
while(1)
{
if(bit_is_set(PINB,0))
{
PORTA |= (1 << 0);
_delay_ms(500);
}

}
}
 
#2
Hola como estás.

Te recomiendo que realices el montaje, las simulaciones nunca son 100% confiables.

PHP:
/************************************************************************************************
 PROGRAMAS DE EJEMPLO PARA EL ATmega8 - 16PI.
 EJERCICIO Nº 6: Utilización de pulsadores.
 PROGRAMADOR: Moyano Jonathan.
 Fecha: 2013.
 Programa: Enciende y apaga un led, cada vez que presionamos un pulsador.
           Utilizamos software antirrebotes para evitar pulsaciones falsas.
 Cristal:  16Mhz.
 Programador: USBtinyISP.
 ************************************************************************************************/
#include <avr/io.h>       // Definiciones de hardware.
#define F_CPU 16000000L   // Definimos la frecuencia de trabajo del microcontrolador.
#include <util/delay.h>   // Librería para generar retardos.

int main(void)
{
	DDRB  |= 1 << PINB0;    // Pin B0 como salida.
	DDRC  &= ~(1 << PINC5); // Pin C5 como entrada.
	PORTB &= ~(1 << PINB0); // Ponemos a nivel bajo el pin donde está conectado el led.

	while (1)
	{
		// Si el pulsador está presionado...
		if (bit_is_clear(PINC, 5))
		{    
			// Esperamos 150ms...antirrebote.
			_delay_ms(150);
			// Miramos nuevamente el estado del pulsador...
			if (bit_is_clear(PINC, 5))
			{
			// En caso de que esté presionado, prende o apaga el led.	
			PORTB ^= 1 << PINB0;
	  }
	}
  }
}
Este ejemplo básico lo podés probar con el ATmega164.
 
#6
Printpix, para compilar podés usar WinAVR o ATMEL Studio. Yo personalmente uso ATMEL Studio por que tiene la última versión del AVR GCC y muchas herramientas útiles para desarrollar.
 
Arriba