Sari la conținut
ELFORUM - Forumul electronistilor

X=X+1; // (Problema de C pt PIC)


Postări Recomandate

@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
  • Răspunsuri 18
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

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

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

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

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 cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări