construí un interruptor de control remoto y conecté su salida a PB0 en el microcontrolador atmega16
luego conectó el sensor pir con una configuración de disparo único durante 30 segundos y se conectó a PB1 en atmega16
aquí está el circuito mi objetivo es poner el sensor pir para detectar que entré en mi habitación para que se encienda en la luz (este punto se hace en el código)
mi problema en el interruptor RC quiero cambiar el estado de PB1 para que pueda controlar su encendido y apagado
utilicé este código
/*
* AVRGCC4.c
*
* Created: 7/9/2017 20:05:11
* Author: shadylap
*/
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRA= 0b11111111;
DDRB= 0b00000000;
DDRC= 0b00000000;
while(1)
{
if (PINB == 0b00000010)
{
_delay_ms(500);
PORTA = 0b00000001;
}
if (PINB == 0b00000001)
{
_delay_ms(1000);
PORTA &= ~ (1<<PA0);
}
}
return 0 ;
}
cuando enciendo el interruptor IR, el led sigue encendiéndose y apagándose, pero quiero cuando enciendo el interruptor IR el led alterna su estado una sola vez
nueva actualización ............................................. ........................ utilicé este código pero no funciona en la simulación de Proteus, aunque estaba funcionando antes, ¿por qué?
#define F_CPU 1000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
int main(void)
{
DDRA=0b11111111;
DDRB=0b00000000;
DDRD=0b00000000;
MCUCR |= (1<<ISC00);
GICR |= (1<<INT0);
sei();
while(1)
{
if (PINB == 0b00000010)
{
PORTA = 0b00000001;
_delay_ms(500);
}
return 0;
}
}
ISR(INT0_vect){
PORTA ^=(1<<PA0);
}