Cristiano Postat Aprilie 21, 2006 Partajează Postat Aprilie 21, 2006 @MirceaM: nu inteleg rolul delay-ului, mi se pare o complicatie inutila. Flag-ul in sine asigura faptul ca nu se va modifica nici un registru in timpul asignarilor.@Sofian: cred ca faci o greseala in rationament, codul respectiv nu impiedica modificarea registrilor de catre intrerupere in timpul asignarilor din programul principal. Plus ca un flag mai trebuie si resetat din cand in cand, nu numai setat ... Link spre comentariu
MirceaM Postat Aprilie 24, 2006 Autor Partajează Postat Aprilie 24, 2006 Am spus de ce prefer solutia cu un delay suplimentar adaugat in bucla. Pentru a putea asigura tratarea mai multor situatii conflictuale, utilizand un singur flag: mai multe variabile care sunt in situatia variabilei X sau alte tipuri de posibile "conflicte". Pe durata delay-ului (in care, in bucla, nu se intampla nimic ce poate duce la conflict) ISR-ul poate fara grija sa execute acele copii care vor fi utilizate in bucla. Link spre comentariu
Cristiano Postat Aprilie 25, 2006 Partajează Postat Aprilie 25, 2006 Am spus de ce prefer solutia cu un delay suplimentar adaugat in bucla. Pentru a putea asigura tratarea mai multor situatii conflictuale, utilizand un singur flag: mai multe variabile care sunt in situatia variabilei X sau alte tipuri de posibile "conflicte". Pe durata delay-ului (in care, in bucla, nu se intampla nimic ce poate duce la conflict) ISR-ul poate fara grija sa execute acele copii care vor fi utilizate in bucla. Sorry, nu mi se pare o metoda prea buna, personal n-as folosi o asemenea abordare deoarece se pot pierde la procesare valori in mod inutil. Ai putea folosi mai multe flag-uri (de exemplu grupate toate intr-un octet, si poti testa usor daca tot octetul este 0, cu o instructiune de tipul "tstfsz flag_register, eticheta"). Link spre comentariu
MirceaM Postat Aprilie 25, 2006 Autor Partajează Postat Aprilie 25, 2006 Am spus de ce prefer solutia cu un delay suplimentar adaugat in bucla. Pentru a putea asigura tratarea mai multor situatii conflictuale, utilizand un singur flag: mai multe variabile care sunt in situatia variabilei X sau alte tipuri de posibile "conflicte". Pe durata delay-ului (in care, in bucla, nu se intampla nimic ce poate duce la conflict) ISR-ul poate fara grija sa execute acele copii care vor fi utilizate in bucla. Sorry, nu mi se pare o metoda prea buna, personal n-as folosi o asemenea abordare deoarece se pot pierde la procesare valori in mod inutil. Ai putea folosi mai multe flag-uri (de exemplu grupate toate intr-un octet, si poti testa usor daca tot octetul este 0, cu o instructiune de tipul "tstfsz flag_register, eticheta").Nu conteaza ca se pierd ceva mai multe valori decat in cazul lipsei delay-ului. Exista alte avantaje (mentionate) si nu mai repet. Nu s-a cerut sa nu se piarda valori si nu s-a mentionat o limita a pierderilor acceptabile. Cerinta a fost una singura: sa se evite "catastrofele" (precum cea descrisa: incrementarea variabilei X cu 65536). Si se evita! Restul ar putea fi... preferinta. 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