Interrupt, hur göra?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
gvs
EF Sponsor
Inlägg: 1688
Blev medlem: 18 oktober 2003, 14:20:34
Ort: Göteborg
Kontakt:

Interrupt, hur göra?

Inlägg av gvs »

Mitt ekolod igen....

har en interruptrutin som jag vet att den anropas, men sen kommer jag inte vidare.
pseudo kod:

enable interrupt
goto wait
---
---
wait
goto $ ; står här och väntar på interrupt
---
---

slut på pseudo kod.
Kommer till wait och hoppar sen till interrupt rutinen. Det funkar perfa, kommer sen även till retfie, så den ska hoppa tillbaka. Problemet är att jag inte kommer förbi "goto $"
Antagligen inte så konstigt... men hur ska jag gör min delay? den ska stå och göra inget tills interrupten sen ska den fortsätta efter delayen. det är capture eller timer interrupt jag väntar på.
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Såhär typ

Kod: Markera allt

 Sätt Flagga=0
 Enabla Interrupts
VäntLoop:
 Gå till Väntloop om Flagga=0
 ....
 .... Fortsätt exekveringen här
 ....


Interrupt:
 Sätt Flagga=1
 Återvänd från interrupt med RETFIE
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Om det bara är en delay i huvudloopen du vill uppnå så behöver du inte ens någon interrupt-rutin. Gör en loop som körs tills interrupt-flaggan sätts och sen clearar denna och fortsätter.

Alternativt sätt en egen flagga i interrupt-rutinen som du kollar i loopen.

edit: Mr. M hann före, med alternativ två menar jag samma sak som ovanstående.
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Inlägg av mrmike »

Då tycker jag det låter som att det är bättre om du nollställer interrupt enable-bitarna (t.ex. TMR0IE) och istället för "goto $" pollar interruptflaggorna (t.ex. TMR0IF) istället. De sätts även om interrupten är inställda att inte orsaka nåt interrupt (hmm...)

edit: doh!
gvs
EF Sponsor
Inlägg: 1688
Blev medlem: 18 oktober 2003, 14:20:34
Ort: Göteborg
Kontakt:

Inlägg av gvs »

Hm.. tror att jag behöver interrupten ska ju fånga vad som händer på capture. ska testa med några flaggor
frax
Inlägg: 75
Blev medlem: 5 juni 2004, 08:58:58
Ort: Västerås
Kontakt:

Inlägg av frax »

Kan man inte sätta den in Sleep-läge, den vaknar väl upp när en interrupt kickar in? Spar lite ström också :)

/frax
Skriv svar