Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Nadefinujeme 5 promennych pro 5 tlacitek (vstupu)
- byte tlA=0,tlB=0,tlC=0,tlD=0,tlE=0;
- void setup() {
- // pinMode - default je všechno INPUT
- // Napisu priklad pro PORT B - zapneme mu PULLUP
- pinMode( 8, INPUT_PULLUP); // Port B0
- pinMode( 9, INPUT_PULLUP); // Port B1
- pinMode(10, INPUT_PULLUP); // Port B2
- pinMode(11, INPUT_PULLUP); // Port B3
- pinMode(12, INPUT_PULLUP); // Port B4
- // Povoleni preruseni PCINT pro PORT B
- PCICR |= (1<<PCIE0);
- // Pokud treba jeste pro dalsi porty tak
- // PCICR |= (1<<PCIE2)|(1<<PCIE1)|(1<<PCIE0);
- // 0-PortB 1-PortC 2-PortD
- // Da se samozrejme i standartni bitovy zapis
- // PCICR = 0b00000111; // coz je stejny ekvivalent zapisu o 2 radky vyse
- // Povoleni PCINT na konkretnich pinech
- PCMSK0 |= (1<<PCINT4)|(1<<PCINT3)|(1<<PCINT2)|(1<<PCINT1)|(1<<PCINT0);
- // Pro dalsi porty je to registr PCMSK1 a PCMSK2
- // Da se samozrejme i standartni bitovy zapis
- // PCMSK0 = 0b00011111; // coz je stejny ekvivalent zapisu o 2 radky vyse
- // Nakonec globalne povolime preruseni
- sei();
- }
- // Kontrola tlacitek na Portu B
- ISR(PCINT0_vect)
- {
- if (!(PINB & (1<<PINB0))) tlA = 1; // Test bitu na vstupu D8
- if (!(PINB & (1<<PINB1))) tlB = 1; // Test bitu na vstupu D9
- if (!(PINB & (1<<PINB2))) tlC = 1; // Test bitu na vstupu D10
- if (!(PINB & (1<<PINB3))) tlD = 1; // Test bitu na vstupu D11
- if (!(PINB & (1<<PINB4))) tlE = 1; // Test bitu na vstupu D12
- }
- void loop() {
- // A tady vesele muzeme kontrolovat stav promennych a dle potreby je nulovat atd ....
- if (tlA == 1)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement