Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- void Ustaw(); // ustawia swiatla w pokojach
- void Pisz(); // wypisuje ilosc osob w pokojach (dla testów)
- int l[5] = {0,0,0,0,0};
- int kier = 0;
- int s = 0;
- int sw = 0;
- int s[5] = {0,0,0,0,0};
- int main() {
- do {
- Ustaw();
- Pisz();
- kier = IORD(SW_SLIDERS_BASE, 0) & SW9; //kierunek przechodzenia
- sw = IORD(SW_SLIDERS_BASE, 0);
- // wybór stanu w zależności od wart na wejsciu SW , stan = który czujnik CD
- if (sw & SW0)
- s = 1;
- else if (sw & SW1)
- s = 2;
- else if (sw & SW2)
- s = 3;
- else if (sw & SW3)
- s = 4;
- else if (sw & SW4)
- s = 5;
- // przechodzenie miedzy pokojami
- switch (s)
- {
- case 1:
- if (kier)
- {
- if (l[2] > 0)
- {
- l[0]++;
- l[2]--;
- }
- else
- IOWR(LEDS_BASE,0, LEDS0 | IORD(LEDS_BASE, 0)); //dioda bledu - leds0
- }
- else
- {
- if (l[0] > 0)
- {
- l[0]--;
- l[2]++;
- }
- else
- IOWR(LEDS_BASE, 0, LEDS0 | IORD(LEDS_BASE, 0)); //dioda bledu - leds0
- }
- break;
- case 2:
- if (kier)
- {
- if (l[0] > 0)
- {
- l[1]++;
- l[0]--;
- }
- else
- IOWR(LEDS_BASE, 0, LEDS0 | IORD(LEDS_BASE, 0)); //dioda bledu - leds0
- }
- else
- {
- if (l[1] > 0)
- {
- l[1]--;
- l[0]++;
- }
- else
- IOWR(LEDS_BASE, 0, LEDS0 | IORD(LEDS_BASE, 0)); //dioda bledu - leds0
- }
- break;
- case 3:
- if (kier)
- {
- if (l[1] > 0)
- {
- l[4]++;
- l[1]--;
- }
- else
- IOWR(LEDS_BASE, 0, LEDS0 | IORD(LEDS_BASE, 0)); //dioda bledu - leds0
- }
- else
- {
- if (l[4] > 0)
- {
- l[4]--;
- l[1]++;
- }
- else
- IOWR(LEDS_BASE, 0, LEDS0 | IORD(LEDS_BASE, 0)); //dioda bledu - leds0
- }
- break;
- case 4:
- if (kier)
- {
- if (l[4] > 0)
- {
- l[4]--;
- }
- else
- IOWR(LEDS_BASE, 0, LEDS0 | IORD(LEDS_BASE, 0)); //dioda bledu leds0
- }
- else
- {
- l[4]++;
- }
- break;
- case 5:
- if (kier)
- {
- if (l[2] > 0)
- {
- l[3]++;
- l[2]--;
- }
- else
- IOWR(LEDS_BASE, 0, LEDS0 | IORD(LEDS_BASE, 0)); //dioda bledu leds0
- }
- else
- {
- if (l[3] > 0)
- {
- l[3]--;
- l[2]++;
- }
- else
- IOWR(LEDS_BASE, 0, LEDS0 | IORD(LEDS_BASE, 0)); //dioda bledu leds0
- }
- break;
- default:
- break;
- }
- }while (1);
- return 0;
- }
- void Pisz()
- {
- for (int i = 0; i < 5; i++)
- {
- printf("l%d = %d ",i+1,l[i]);
- }
- }
- void Ustaw()
- {
- for (int i = 0; i < 5; i++)
- {
- if (l[i] > 0)
- s[i] = 1;
- else
- s[i] = 0;
- }
- IOWR(LEDS_BASE, 0, (LEDS1*s[0]) | (LEDS2*s[1]) | (LEDS3*s[2]) | (LEDS4*s[3]) | (LEDS5*s[4]));
- /*
- if (l[0] > 0)
- IOWR(LEDS_BASE, 0, LEDS1 | IORD(LEDS_BASE, 0));
- else
- {
- IOWR(LEDS_BASE, 0, LEDS1 ^ IORD(LEDS_BASE, 0));
- }
- if (l[1] > 0)
- IOWR(LEDS_BASE, 0, LEDS2 | IORD(LEDS_BASE, 0));
- else
- {
- IOWR(LEDS_BASE, 0, LEDS2 ^ IORD(LEDS_BASE, 0));
- }
- if (l[2] > 0)
- IOWR(LEDS_BASE, 0, LEDS3 | IORD(LEDS_BASE, 0));
- else
- {
- IOWR(LEDS_BASE, 0, LEDS3 ^ IORD(LEDS_BASE, 0));
- }
- if (l[3] > 0)
- IOWR(LEDS_BASE, 0, LEDS4 | IORD(LEDS_BASE, 0));
- else
- {
- IOWR(LEDS_BASE, 0, LEDS4 ^ IORD(LEDS_BASE, 0));
- }
- if (l[4] > 0)
- IOWR(LEDS_BASE, 0, LEDS5 | IORD(LEDS_BASE, 0));
- else
- {
- IOWR(LEDS_BASE, 0, LEDS5 ^ IORD(LEDS_BASE, 0));
- }*/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement