jautājums par "ON pārtraukt" in PicBasic Pro

S

sp

Guest
Sākumlapa: http://www.microengineeringlabs.com/resources/pbpmanual/
zemāk: http://www.microengineeringlabs.com/resources/pbpmanual/5_42-5_47.htm # 544

Kods:

ON InterruptPAR Interrupt Goto LabelPAR pārtraukt ļauj mikrokontrolleru pārtrauc apstrāde ar PICBASIC PRO subroutine.Ir 2 veidi, kā apstrādāt pārtrauc, izmantojot PICBASIC PRO Compiler.
Pirmais ir rakstīt asamblervaloda pārtraukt rutīnas.
Tas ir veids, kā rīkoties pārtrauc ar īsāko latentuma un zemāko izdevumiem.
Šī metode ir apspriests saskaņā ar progresīvu tēmu, kuras vēlāk sadaļā.Otru metodi rakstīt PICBASIC PRO pārtraukumu apdarinātājs.
Tas izskatās tāpat kā PICBASIC PRO subroutine bet beidzas ar CV.Kad pārtrauc notiek, tas ir apzīmēts.
Tiklīdz pašreizējiem PICBASIC PRO paziņojumu = s izpilde ir pabeigta, programmu lec uz BASIC pārtraukt handler at Label.
Vienreiz pārtraukt apdarinātājs ir pabeigta, CV paziņojumu nosūta programmu atpakaļ uz vietu, kur tas bija, kad pārtraukt noticis, pacelt, kur tas pārtraukts.Disable un enable ļaujot dažādām nodaļām PICBASIC PRO programmu izpildīt bez iespēja tikt pārtraukts.
Ievērojamākā vieta lietot DISABLE ir tiesības pirms faktiskās pārtraukumu apdarinātājs.
Vai pārtraukt handler, var iesniegt ON nepārtrauc paziņojums par pārtraukšanu karoga nav pārbaudīta pirms pirmā ON pārtraukt šajā programmā.Latency ir, kad tas notiek laikā no faktiskās pārtrauc uz laiku pārtraukt handler ievadīšanas.
Tā PICBASIC PRO paziņojumi netiek atkārtoti ienācējs (ti, jūs nevarat izpildīt citā PICBASIC PRO paziņojumu, bet viena tiek izpildīts), tad var būt ievērojama latentuma pirms pārtraukt ikdienas ievadīšanas.PSP nestāsies BASIC pārtraukumu apdarinātājs līdz tas ir pilnībā izpildot aktuālu paziņojumu.
Ja paziņojums ir PAUSE vai Serin, tas varētu būt diezgan nedaudz pirms pārtraukt ir obligāta.
Programma jāizstrādā ar šo latentuma prātā.
Ja tas ir pieņemams, un pārtrauc, ir jārīkojas ātrāk, montāža valoda pārtraukt ikdienas jāizmanto_Overhead ir cits jautājums.
PAR pārtraukt pievienos instrukcija pēc katra paziņojuma, lai pārbaudītu, vai pārtraukt jau ir notikusi.
DISABLE izslēdz pievienots šai apmācībai.
ENABLE griežas atpakaļ no jauna.
Parasti papildu informācija nebūs liela problēma, bet sen programmas mazo mikrokontrolleri varētu ciest.Vairāk nekā vienu pārtraukumu var izmantot programmu.PAR pārtraukt Goto Myint "Interrupt apdarinātājs ir Myint

INTCON =% 10010000 'Enable RB0 pārtraukt.
.
.Atslēgt "Disable pārtrauc in handler

Myint: LED = 1 'Ieslēgt LED, kad pārtraukta

RESUME 'Atgriezties uz galveno programma

ENABLE 'Ieslēgt pārtrauc pēc handlerLai izslēgtu pārtrauc pastāvīgi (vai līdz to atkal) vienu reizi pārtraukt ir izmantota, kas INTCON ar 80 $:INTCON = $ 80
 
Sveiki

Enable un Disable izmanto PICBasic Pro pārtraukt iespējamu un atspējošanas attiecīgi ...

Vienkārši, lai jūs zinātu, ka PICBasic Pro atbalsta pārtrauc ir atšķirīgi no assembler, tas pievieno speciālu kodu, lai pārtrauc, tad, kad jūs izmantojat atspējot, tā vienkārši stāsta kompilators nevar ievietot kodu, kas ir veltīta, lai pārtrauc apstrādei, lai kad esat pārtraukt pakalpojumu rutīnas, kas apkalpo pārtraukt, jums ir jāizmanto atslēgt noraidīt jebkuru incomming pārtrauc rada traucējumus rutīnas, jums jāizmanto lai tieši pēc atsākt komandu, lai izvairītos no traucējumiem atsākt komandai arī, jo šī komanda nav tikai atgriežas no pārtrauc ikdienas, bet arī kļūst GIE bits augsts, tāpēc, ka ir problēma, ja jūs domājat, ka Jums var likt lai pirms atsākt komandu, arī jums ir jāizmanto lai pēc tam atkal komandu, lai kompilators likt, ka pārtraukt pārkraušanas kods pēc atsākt tieši, ne pirms tam ...

Labu veiksmi

 
thank you ...

bet tas programmēšanas valodu veids ir secīgas darbības,, THT ir vidējais braukšanas pozīcijai ...

pēc "atsāks" komandu, programma atgriezties pamata programmu,,,, ir iespēju iegūt izpildīts? ...

THT ir mans jautājums ....patiesībā es vienkārši iemācīties pisbasic pro valodā ....i am noob ...

paldies

my regards,
sp

 
Sveiki

Enable un Disable netiek veiktas, kā jau es teicu pirms -> Tās ir komandas, kas pateikt kompilatoru kur likt un kur nelaist iterrupt apstrādes kodu, ja jūs lasīt pēdējās lappuses rokasgrāmatā attiecībā pārtraukt jautājumiem es domāju, ka visas problēmas būs sadzijušas ...

Tie ir komandas sastādītājs darbos, nevis pic, lai sequentioally izpildīt to, kā jūs domājat, kas fonā, tas vienkārši novērš kompilators veidlapu nodošanu, ka kods, kas ļauj PIC, lai konstatētu, vai ir pārtraukt vai nav, tad, kad sastādītājs uzskata, Disable, tad vienkārši izslēdz PIC spēju kalpot pārtrauc.

Meklēt to, kas notiks, ja jūs varēsiet ievietot Enable pirms Resume:

Pieņemsim, ka izpildes ieradās uz punktu, kas tā veiks Resume komandu, šajā brīdī pārtraukt ocuured, kas būs patiešām notiek, ka tā atgriezīsies atpakaļ uz sākumu pārtraukt Pakalpojumu Rutīnas "ISR", jo tu izmantot komandu enable, pirms Resume komandu, jums ir enbled kas pārtrauc darbos pirms Resume komandu, kas izraisa iespējamu bezgalīgu cilpas ISR izpilde, nezinot, kāpēc ... Kā jūs zināt, tās jautājums 3 ľSeconds izpildīt atsākt komandu, es domāju, ka šī ir absoltely pietiekami, lai PIC darbosies mūžīgācilpa vai pārtraukt tā paša, vai kāds cits pārtraukt vēl nav pakalpojumu.

Labu veiksmi

 
Enable būs "izpildīts", neatkarīgi no tā, ka "izpildīts" nav tiesību termiņu.Kā metāla teicu, tas ir tikai PicBasic kompilators norāda, ka faktiski pārtraukt subroutine ir pabeigta.Jūs _have_ to pārdot pēc tam atkal komandu.

 
okok,, paldies metāla par sīki izskaidrojums ...Es saprotu, tagad ...

pateicoties buzz, kā arī ....

kā parasti ....i hav daudz jautājumu uzdot ...http://www.microengineeringlabs.com/resources/pbpmanual/5_4-5_6.htm # 56
Kods:BUTTONBUTTON Pin, Down, Delay, Rate, BVar, Action, LabelLasīt Pin un pēc izvēles veic debounce un auto-repeat.
Pin automātiski veic ieguldījumu.
PIN var būt konstanti, 0-15, vai mainīgais, kas satur vairākus 0-15 (piem., B0) vai pin nosaukumu (piemēram PORTA.0).

-------------------------------------------------- ----------------------------------

Nosaka: Valsts PIN, ja poga ir nospiesta (0 .. 1).Delay: Cycle count pirms auto-repeat sākas (0 .. 255).
Ja 0, neviens debounce vai auto-repeat tiek veikta.
Ja 255, debounce, bet ne auto-repeat, tiek veikta.Vērtēt: Auto-repeat likmi (0 .. 255).BVar: Byte vidējo mainīgo lielumu izmanto iekšēji, lai kavēšanos / atkārtotu skaitīšanu.
Ir jābūt inicializēts ar 0 līdz lietošanai un to nedrīkst lietot citur programmā.Rīcība: valsts pogas rīkoties (0, ja nav nospiesta, 1, ja nospiests).Label: Execution atsāk ar šo etiķeti, ja rīcību ir patiess.

-------------------------------------------------- ----------------------------------Piemēram:

"Goto notpressed ja poga nav nospiesta par PIN2

BUTTON PORTB.2, 0,100,10, B2, 0, notpressedBUTTON ir jāizlieto loop for auto-repeat pienācīgi darbotos.BUTTON accomplishes debounce aizkavē programmu izpildi uz laiku milisekundēs gaidīt kontaktus apmesties.
Noklusējuma debounce kavēšanās 10ms.
Lai mainītu debounce citai vērtībai, izmantojiet definē:> Uzstādīt pogu debounce kavēšanās 50msDEFINE BUTTON_PAUSE 50Pārliecinieties, ka BUTTON_PAUSE ir visi lielie burti.Kopumā, ir vieglāk vienkārši lasīt stāvokli PIN IF .. THEN nekā izmantot BUTTON komandu šādi:Ja PORTB.2 = 1 Tad notpressedPiemērs programma:Include "modedefs.bas" "Ietvert sērijas veidi

SO Con 0 'Definējiet sērijas izlaidi pin

Bpin Con 2 'Defin Pogas ievadi pin

B0 Var ByteB0 = 0 'Zero pogas strādā buferiscilpa: BUTTON Bpin, 1,10,5, B0, 0, notp 'Pārbaudīt pogu (izlaist, ja nav nospiests)

Serout SO, N2400, [ "Press", 13,10] 'Norādīt pogu nospiestunotp: Serout SO, N2400, [# B0, 13,10] "Rādīt darba mainīgaisPause 100 "Pagaidiet nedaudz

Goto cikla "Vai tas uz visiem laikiem

 

Welcome to EDABoard.com

Sponsor

Back
Top