Problema cu întreruperile

B

Bukitoo

Guest
Hi!
Sunt foarte confuz!
Eu am de a utiliza întreruperile într-un proiect 89s8252.

În cazul în care întrerup apare, eu am de a primi date, precum şi starea finisajul-un alt întrerupe apariţia (la fel).
Vreau să ştiu ce se întâmplă atunci când eu numesc întrerupere de rutină, în cazul în care aceeaşi întrerupere să apară în timpul hasnt Int rutina terminat.

Mulţumesc!

 
Din moment ce sunt achizitie a datelor, cu o întrerupere şi apoi veţi primi un alt din aceeaşi întrerupere care provoacă să începeţi să vă întrerupă procesul de peste tot, veţi începe, probabil, peste scrie date dacă sunteţi de înregistrare undeva.

Dacă aveţi să capteze fiecare piesa de date care pot întrerupe procesorul dvs., apoi m-am recomanda instituirea unui tampon de date de un fel.Atunci când vă întrerupe rutina devine numit, nu fi de acord că rutina de întrerupere, la început, apoi verificaţi-tampon înainte de a ieşi întrerupe pentru a vedea dacă aţi avut mai multe date vin in Dacă aveţi atunci stii tu ai mai mult de prelucrare a face.

Dacă tu dont have a capta fiecare piesa de date şi este bine să luaţi o câteva pachete de informaţii, apoi atunci chiar a opri întrerupe la începutul acestei rutină şi porniţi-l din nou pe faptul că înainte de a ieşi de rutină.În acest fel este imposibil ca aceasta să întrerupă din nou şi poate determina sa te erori sau crash.Doar asiguraţi-vă că se întrerupe repornită atunci când aţi terminat şi asiguraţi-vă că întrerupere pavilion este de a nu putea suporta.Dacă nu vă poate întrerupe infinately.SUCCES!!!!

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Zâmbi" border="0" />
 
IS este foarte ciudat!
Eu am configurat 8051 ca panta întrerupere.
asa ca atunci cand apar întrerupe să verific o variabilă în memorie pentru a verifica dacă această întrerupere a fost deja a avut loc.În cazul în care a schimbat, am reveni la programul principal.Eu fac asta pentru că am nevoie pentru a nu fi de acord întrerupe un pic de timp între ocurrences.
Problema este că întrerup ocurrs de două ori, şi nu unul ca doresc!<img src="http://www.edaboard.com/images/smiles/icon_rolleyes.gif" alt="Rolling Eyes" border="0" />
 
Aveţi posibilitatea să trimiteţi-mi vă întrerupe codul prin PM, poate te pot ajuta.

toate cele bune

 

Welcome to EDABoard.com

Sponsor

Back
Top