/* * Dioda * * Program zapala diodę i zapala/gasi drugą przyciskiem PC0. * Możliwe modyfikacje/zadania: dodanie jednego przycisku, który zgasi palącą się diodę i drugiego, * które ją z powrotem zapali. */ #include int main(void) { /* * konfiguracja portu B (tu są podłączone diody) */ PORTB.DIR = PIN0_bm|PIN3_bm; //ustawienie pinów 0 i 3 jako wyjścia (wpisanie 1 do rejestru), /* * zapalenie diody */ PORTB.OUTSET = PIN0_bm; //ustawienie 1 na pinie 0, /* * konfiguracja portu C (tu są przyciski) */ PORTC.DIR = ~PIN0_bm; // ustawienie pinu 0 jako wejście (wpisanie 0 do rejestru), PORTC.PIN0CTRL = PORT_OPC_PULLUP_gc; // włączenie pull-up'u na pinie jako, że przycisk po // wciśnięciu zwiera do masy i wymusza stan 0, /* * niskończona pętla */ while(1) { if (0 == (PORTC.IN & PIN0_bm)) // gdy przycisk jest wciśnięty (przycisk zwiera { // pin do masy -> stan 0 za pinie) to PORTB.OUTTGL = PIN3_bm; // stan diody zostaje zmieniony, } } }