Vizitator nelukyns Postat Martie 28, 2010 Partajează Postat Martie 28, 2010 Dar Intreruperile is prea complicate pentru mine...am citit despre ele dar oricum nu inteleg cum executa ele in paralel...am mai bagat azi in program acele 5 sec de pauza in care cuvintul stop apapare si dispare...dar in aceste 5 sec totul restul e inactiv...eu vreau sa inteleg asta - acele 5 sec sa isi faca treaba in liniste...dar totodata al doiela sensor sa fie activ...si alte chestii asemanatoare... Link spre comentariu
francezu Postat Martie 28, 2010 Partajează Postat Martie 28, 2010 Atunci altfel : faci o bucla compusa din pauze suficient de scurte incat sa poti sesiza evolutia senzorului; in acea bucla interoghezi si intrarea la care este conectat senzorul. Repeti intreaga bucla de un numar suficient de ori incat sa ai o durata de pauza dorita. De exemplu cblock d1 d2 endc;; movlw d'100' movwf counter ;preseteaza contorul care da numarul de executii ale buclei (pauza totala va fi : counter X d50= 100 X 50ms = 5000 ms )Loop call d50 ;asteapta 50 ms btfsc PORTX,x ;daca senzorul 2 este activat ( inlocuiesti PORTX,x cu ceea ce folosesti in cazul tau) call S_activ ;atunci executa rutina corespunzatoare senzorului activat ;altfel, continua bucla decfsz counter,f ;decrementeaza contorul ; daca counter >0 goto Loop ;repeta bucla ;altfel, iesire din bucla- au trecut cele 5 secunde;continuare program;;S_activ ;aici executi codul in cazul in care senzorul 2 a fost activat return;;d50 ;rutina de intarziere- 50 ms - clock=4Mhz ;49993 cycles movlw 0x0E movwf d1 movlw 0x28 movwf d2Delay_0 decfsz d1, f goto $+2 decfsz d2, f goto Delay_0 ;3 cycles goto $+1 nop ;4 cycles (including call) return;endIn realizate , pentru ca bucla mai contine si alte instructiuni decat apelul catre rutina de intarziere( 50ms ), pauza totala va fi putin mai mare de 5s, cam cu 300-500 us. Intradevar , cum spuneau si colegii, intreruperile dau rezultate mai bune, dar pentru ceva nepretentios, poate fi folosita cu succes si metoda descrisa mai sus. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum