/*
drukknop --> led
atiny2313
PB1 - PB2 - PB3 - PB4 - PB5 (DRUKTOETS + 330 ohm + GND)
PD1 - PD2 - PD3 - PD4 - PD5 (LED + 330 ohm + GND)
VCC (+5V)
GND
*/
#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <avr/iotn2313.h>
#define LED1 PD1
#define LED2 PD2
#define LED3 PD3
#define LED4 PD4
#define LED5 PD5
#define KNOP1 PB1
#define KNOP2 PB2
#define KNOP3 PB3
#define KNOP4 PB4
#define KNOP5 PB5
void init()
{
DDRD |= (1<<LED1); //LED1 uit
DDRD |= (1<<LED2); //LED2 uit
DDRD |= (1<<LED3); //LED3 uit
DDRD |= (1<<LED4); //LED4 uit
DDRD |= (1<<LED5); //LED5 uit
DDRB &=~(1<<KNOP1); //KNOP1 in
DDRB &=~(1<<KNOP2); //KNOP2 in
DDRB &=~(1<<KNOP3); //KNOP3 in
DDRB &=~(1<<KNOP4); //KNOP4 in
DDRB &=~(1<<KNOP5); //KNOP5 in
}
int main(void)
{
init();
while(1)
{
// KNOP1 ??
if (PINB & (1<<KNOP1)) //PB0 1?
{
PORTD |= (1<<LED1); //PD1 = 1;
PORTD &=~(1<<LED2); //PD2 = 0;
PORTD &=~(1<<LED3); //PD3 = 0;
PORTD &=~(1<<LED4); //PD4 = 0;
PORTD &=~(1<<LED5); //PD5 = 0;
}
// KNOP2 ??
if (PINB & (1<<KNOP2)) //PB0 1?
{
PORTD &=~(1<<LED1); //PD1 = 0;
PORTD |= (1<<LED2); //PD2 = 1;
PORTD &=~(1<<LED3); //PD3 = 0;
PORTD &=~(1<<LED4); //PD4 = 0;
PORTD &=~(1<<LED5); //PD5 = 0;
}
// KNOP3 ??
if (PINB & (1<<KNOP3)) //PB0 1?
{
PORTD &=~(1<<LED1); //PD1 = 0;
PORTD &=~(1<<LED2); //PD2 = 0;
PORTD |= (1<<LED3); //PD3 = 1;
PORTD &=~(1<<LED4); //PD4 = 0;
PORTD &=~(1<<LED5); //PD5 = 0;
}
// KNOP4 ??
if (PINB & (1<<KNOP4)) //PB0 1?
{
PORTD &=~(1<<LED1); //PD1 = 0;
PORTD &=~(1<<LED2); //PD2 = 0;
PORTD &=~(1<<LED3); //PD3 = 0;
PORTD |= (1<<LED4); //PD4 = 1;
PORTD &=~(1<<LED5); //PD5 = 0;
}
// KNOP5 ??
if (PINB & (1<<KNOP5)) //PB0 1?
{
PORTD &=~(1<<LED1); //PD1 = 0;
PORTD &=~(1<<LED2); //PD2 = 0;
PORTD &=~(1<<LED3); //PD3 = 0;
PORTD &=~(1<<LED4); //PD4 = 0;
PORTD |= (1<<LED5); //PD5 = 1;
}
}
return 0;
}