Tryck på knappen - tänd LED
ATmega328P.pdf ( Register summary on p 428 )
|
![]() |
Att tända en lysdiod med en strömbrytare kräver naturligtvis ingen mikroprocessor, men det är en bra idé att bekanta sig med en processor genom att börja med elementära exempel.

Portpinnarna styrs med tre register för varje port. Varje bit i registren styr en pinne.
Programmed använder PD2 som ingång till Button, och PB5 som utgång till den inbyggda lysdioden. Genom att aktivera PD2 inbyggda pullup kan man utesluta R1.
DDRD &= ~( 1 << PD2 ); // PD2 "0" direction is input PORTD |= ( 1 << PD2 ); // "1" activate button pullup resistor DDRB |= ( 1 << PB5 ); // PB5 "1" LED is output
För att tända "1" LED om Button är tryckt "0" skriver man så här:
if( ( PIND & ( 1 << PD2 ))==0 ) PORTB |= ( 1 << PB5 ); // Button pressed "0" LED "1" on else PORTB &= ~( 1 << PB5 ); // LED "0" off
Det fullständiga programmet finns här:
button.txt
(for Arduino use code stored as: button\button.ino)
William Sandqvist willsandqvist@gmail.com