Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //══════════════════════════════════════════════════════════════════════════════════════════════════════//
- // Vačkový spínač pro ovládání prvků lokomotivy //
- // Funkce pro ovládání vačkových spínačů, má čtyři vstupní parametry : 1) První pin PISO registru, po kterém následuje (pocetPoloh) dalších, se spínači stavu //
- // 2) CVID - trojznak definovaný v programu TStoCOM //
- // 3) Počet poloh spínače //
- // 4) První poloha spínače, která se odešle do simulátoru //
- // Funkce posílá pomocí sériové linky hodnotu v zadaném rozsahu(prvniPoloha + pocetPoloh), násobitel je 1. //
- //══════════════════════════════════════════════════════════════════════════════════════════════════════//
- int aktualStavPrepinace = 0;
- int staryStavPrepinace = 3;
- //══════════════════════════════════════════════════════════════════════════════════════════════════════//
- void SpinacVackovy(int pointer, String CVID, int pocetPoloh, int prvniPoloha) {
- for (int i = pointer; i < (pointer + pocetPoloh); i++) {
- bitWrite(aktualStavPrepinace, (i - pointer), tlacitko[i]);
- }
- if(staryStavPrepinace != aktualStavPrepinace)
- {
- for(int i=0; i<pocetPoloh; i++) {
- int mocnina = powint(2,i);
- if(aktualStavPrepinace == mocnina) {
- Serial.print(CVID);
- Serial.print(i+prvniPoloha);
- Serial.print("\r\n");
- }
- }
- staryStavPrepinace = aktualStavPrepinace;
- }
- }
- //══════════════════════════════════════════════════════════════════════════════════════════════════════//
- int powint(int x, int y)
- {
- int val=x;
- for(int z=0;z<=y;z++)
- {
- if(z==0)
- val=1;
- else
- val=val*x;
- }
- return val;
- }
- //══════════════════════════════════════════════════════════════════════════════════════════════════════//
Advertisement
Add Comment
Please, Sign In to add comment