pic prekinuti kontekstu spasiti i vratiti

Ne možete postavljati odgovore dugo (ja još uvijek ne znam zašto)

Pokušajte PM meni i ja ću pokušati da vam poslati moje dvije ISR kodove za niski i visoki prioritet

 
Quote:

Ali kad sam ga promijeniti u nisko priortity (sa ili bez spasiti i vratiti kontekst), to još uvijek radi kao visoka prortity
 
ja radimo na RS232 serijska komunikacija (com da picdem 2 plus). bajt kad su primljene, LED će vodio up.Hm. .. ja guba pokrenuti visoki prioritet prekinuli (što ne treba spasiti i vratiti kontekst pravo? ) ... Ali kada sam ga promijeniti u nisko priortity (sa ili bez spasiti i vratiti kontekst), to i dalje raditi kao što je visok prortity.
Jeste li znali zamotuljak mislim? Ovdje su neke od registara koje imam set.Thx<ORG 0x0018 ;interrupt vektor addresses>
.
.
.
.
BSF RCON, 7
BSF PIE1, 5; omogućiti usart prekid
movlw b'11000000 '
movwf INTCON
Bcf INTCON, 1; INTF - Clear zastava bit samo u slučaju

 
provjeriti označene linijeintcleanmovf savestatus, w; dobiti informacije pohranjene status

movwf status; vratiti status!(banka = original)
swapf savew, f, w vratiti iz originalne * * banka
swapf savew, w; swapf ne utječe na bilo koje zastaveprovjerite da imate org 0x0018 izjava

naći ćete ga lakše koristiti naredbu movFFovo je primjer kako datoteke predložaka normalno kod niskog prioriteta prekidŠifra:

; Nizak prioritet prekidni vektor i rutinu

; Ovaj broj će se početak izvršenja kada dođe do prekida niskog prioriteta.

; Ovaj kod se može ukloniti ako niskog prioriteta prekida se ne koriste.ORG 0x0018

goto LPINT; uključiti ovo ako koristite uređivač povezivanjakod; uključiti ovo ako koristite uređivač povezivanja

LPINT; uključiti ovo ako koristite uređivač povezivanjamovff STATUS, STATUS_TEMP; spremanje STATUS registra

movff WREG, WREG_TEMP; spremiti radni registar

movff BSR, BSR_TEMP; spremanje BSR registrirati; *** Nizak prioritet prekinuti kod ide ovdje ***movff BSR_TEMP, BSR; vratiti BSR registrirati

movff WREG_TEMP, WREG; vratiti radni registar

movff STATUS_TEMP, STATUS; vratiti STATUS registra

retfie
 
Hm ... ja već zamijene kodove:movlw 08h; to premjestiti iz registra 1 do w.
movwf LATB, premjestiti ga PORTB da osvijetli LED

s ovim:

BSF LATB, 3; svjetlo RB3 vodio

 
movf RCREG, w; spremanje primljenih podataka u W
movlw 08h; to premjestiti iz registra 1 do w.
movwf LATB, premjestiti ga PORTB da osvijetli LED

ovo:

movf RCREG, w; premjestiti podatke iz registra za primanje W
>>> movlw 08h <<<; prebrisati podatke u W s doslovnu vrijednost 08h
movwf LATB; set PORTB, 3 (08h)Jeste li sigurni da želite prebrisati podatke u W?luka vam ga spremili, a to prepisati sa sljedećih instrukcija

 
To je zato što ste to programiranje poput 16F.Morate koristiti
RETFIE FAST
da će se pop-W, & STATUS BSR od stog

To goto to je izvan ISR?

 
hm .... ma "goto primiti" instrukcija se nalazi u HRV ... a ja samo omogućiti (INTCON <7>) .. postoji li neki drugi malo trebam postaviti?hm .. btw ja sam koristeći prekinuti normalan .. ne koriste visok ili nizak prioritet više =)

 
Morate postaviti PIE registrirati previše.
Jeste li izbrisani zastavu malo prije povratka?
To je sve u podatkovna tablica.Jeste li ga pročitali za PIC?

 
Izgleda ok, koristiti oznake kod ipak kao oni olakšavaju čitanje.

Ne morate se kontekstu spasiti ili vratiti W & status na 18F osim ako tvoj 'koristeći visok prioritet prekida.

 
hm .. ja sam koristeći 18F452 niskog prioriteta prekida ... ali Internet se 'činiti se biti rad.

 
C

candy66

Guest
Hey guys .... ja pokušati pokrenuti ovu prekinuti rutinu, ali to nije working.Did ja spasiti i vratiti moj kontekstu pravilno? Može bilo tko pomoć?int_servmovwf savew; Store vrijednost w privremeno
movf status, w, w sada ima kopija stanja
clrf status; bismo bili sigurni da su u banci 0 aukciji!
movwf savestatus; spremanje statusprimati btfss PIR1, 5; (5) provjerite za primljene podatke
goto primiti
movf RCREG, w; spremanje primljenih podataka u W
movlw 08h; to premjestiti iz registra 1 do w.
movwf LATB, premjestiti ga PORTB da osvijetli LEDintclean

movwf status; vratiti status!(banka = original)
swapf savew, f, w vratiti iz originalne * * banka
swapf savew, w; swapf ne utječe na bilo koje zastave

retfie

 

Welcome to EDABoard.com

Sponsor

Back
Top