Prośba o zerknięcie na skrypt

Zaczęty przez sulim, Październik 27, 2026, 07:12:38

Poprzedni wątek - Następny wątek

sulim

witam prośba o zerkniecie do skryptu dostałem skrypt (do syreny elektronicznej czas działania 30s i 5s przerwy 3 takie sekwencje) potrzebuje go zmodyfikować pod syrenę silnikową (35s działania 20s przerwy 3 takie sekwencje)
Skrypt 30s na 5s działa poprawnie a ten 35s na 20s nie sprawdziłem (chciał bym mieć pewności jak pojadę na miejsce że działa poprawnie)

skrypt 30s na 5s 3 sekwencje:
int I1;
int M1;
int M2;
int M2p;
int M4;
int M5;                     
int M7;
int O1;
main(){
M2p=M2;                 
while(1){                                                   
I1=geti(1);
M1=pons(0,I1,0,120);   
M2=blnk(1,M1,0,40); 
M2=!M2&M1;   
if((M2p==1&&M2==0)){
M4=1;   
} else {                                 
M4=0;         
};             
if((M2p==0&&M2==1)){
M5=1;                               
} else {
M5=0;                     
};                                   
M7=(M4|M5)&M1;
M2p=M2;   
O1=pons(2,M7,0,35);
seto(2,O1);                   
};
};



skrypt 35s na 20s 3 sekwencje

int I1;
int M1;
int M2;
int M2p;
int M4;
int M5;                     
int M7;
int O1;
main(){
M2p=M2;                 
while(1){                                                   
I1=geti(1);
M1=pons(0,I1,0,580);
M2=blnk(1,M1,0,160);
M2=!M2&M1;   
if((M2p==1&&M2==0)){
M4=1;   
} else {                                 
M4=0;         
};             
if((M2p==0&&M2==1)){
M5=1;                               
} else {
M5=0;                     
};                               
M7=(M4|M5)&M1;
M2p=M2;   
O1=pons(2,M7,0,140);
seto(2,O1);                   
};

JakubH

Dzień dobry, drugi ze skryptów cztery razy załączy wyjście O2 (syrenę) na 140 sekund, a przerwa pomiędzy kolejnymi załączeniami wyniesie 20 sekund, czyli sekwencja wygląda tak:
załączone na 140s;
wyłączone na 20s;
załączone na 140s;
wyłączone na 20s;
załączone na 140s;
wyłączone na 20s;
załączone na 140s;
Oraz dodatkowo brakuje w nim ostatniej klamry (ale być może tylko się nie skopiowała).
Skrypt spełniający warunki wygląda na przykład tak:

int I1;
int M1;
int M2;
int M2p;
int M4;
int M5;                     
int M7;
int O1;
main(){
M2p=M2;                 
while(1){                                                   
I1=geti(1);
M1=pons(0,I1,0,120);   
M2=blnk(1,M1,0,55);
M2=!M2&M1;   
if((M2p==1&&M2==0)){
M4=1;   
} else {                                 
M4=0;         
};             
if((M2p==0&&M2==1)){
M5=1;                               
} else {
M5=0;                     
};                                   
M7=(M4|M5)&M1;
M2p=M2;   
O1=pons(2,M7,0,35);
seto(2,O1);                   
};
};
W przypadku tego skryptu sekwencja będzie wyglądać tak:
załączone na 35s;
wyłączone na 20s;
załączone na 35s;
wyłączone na 20s;
załączone na 35s;

sulim

dziękuje za opd. jak sprawdzę dam znać czy działą