Här kommer koden
Kod: Markera allt
#include <avr/io.h>
#include <avr/delay.h>
int main()
{
// Output
DDRB = 0xFF;
PORTB &= ~_BV(PD0);
// Input
DDRD = 0x00;
PORTD = _BV(PD0) | _BV(PD1);
while(1)
{
if(!(PIND & _BV(PD0)))
{
// Om PD0 låg, Vänster (1ms)
_delay_ms(20);
PORTB |= _BV(PB0);
_delay_ms(1);
PORTB &= ~_BV(PB0);
}
else if(!(PIND & _BV(PD1)))
{
// Om PD1 låg, Höger (2ms)
_delay_ms(20);
PORTB |= _BV(PB0);
_delay_ms(2);
PORTB &= ~_BV(PB0);
}
else
{
// Annars mittläge (1,5ms)
_delay_ms(20);
PORTB |= _BV(PB0);
_delay_ms(1.5);
PORTB &= ~_BV(PB0);
}
}
}