Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int main(void)
- {
- DDRD = 0xff; //port D -> izlaz
- DDRC = 0x00; //port C -> ulaz
- DDRB = 0x0f; //PB3 - PB0 izlazi
- while (1)
- {
- /*
- * PINC = 1111 1111 kada ne drzis nijedan taster, kada pritisnes recimo S3, on je na PC3
- * tada PINC = 1111 0111 , obrnuta logika, dobija nulu kada je pritisnut.
- *
- * ~PINC od pritisnutog tastera postaje [[[0000 1000]]], 1 << 3 = 0000 0001 << 3 = [[[0000 1000]]]
- * [[[]]] & [[[]]] == TRUE!!!
- * */
- if(!(~(PINC) & 1 << 3) && !(~(PINC) & 1 << 1)) enable = 1; // - hahahahaha ludilo
- // ovo iznad zapravo pita da li su oba tastera otpustena...
- // enable = 1 samo pod uslovom da su oba tastera pustena, i onda cim stisnes nesto
- // on gasi enable i vise ne dozvoljava operacije ++ i -- brojaca dok ponovo ne pustis...
- if(enable == 1) {
- // proveravam pritisak UP tastera.
- if(~(PINC) & 1 << 3) { // UP BTN, S3 --> PC3 s toga 1 << 3
- enable = 0; // zabrani ponovni ulazak u ovaj scope
- // i samim tim sprijeci unedogled uvecavanje brojaca
- // dok se drzi taster.
- uvecajBrojac();
- }
- // provera pritiska DOWN tastera
- if(~(PINC) & 1 << 1) { // DOWN BTN, S1 --> PC1 s toga 1 << 1
- enable = 0; // zabrani ponovni ulazak u ovaj scope...
- umanjiBrojac();
- }
- }
- budziNaDisplej(); // ispis vrtis non-stop, neovisno od dozvoli koriscenja tastera.
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement