Sida 1 av 1

Använda Pic 18 med avbrott i c, tips?

Postat: 31 december 2018, 01:20:42
av BJ
Förut har jag använt Pic 16 och 18
med avbrott i assembler. Det vet jag
hur man gör. Tar register som finns i
alla banker för att spara vissa register
när man går in i avbrottet, och återställer
dom när man går ur.
Inne i avbrottet tittar man vilken bit
det är som har skapat avbrottet, och
gör det man ska.
Nu har ju Pic 18 dubbla avbrott, men
ungefär så går det ju till.

Hur gör man om man vill programmera i c
och använda avbrott?
Kompilator = någon som man kan hämta gratis.
Man har ju lite sämre koll på vad det skapas
för instruktioner när programmet kompileras
mot om man skriver det i assembler direkt.
Men är det ändå användbart?
Om programmet inte är så tidskritiskt.

Finns det någon bra sida som någon kan
peka på? Kanske lite tips?

Re: Använda Pic 18 med avbrott i c, tips?

Postat: 31 december 2018, 01:36:41
av TomasL
Tja, som jag skrev tidigare, MPLABX och dess tillhörande kompilatorer, gratis på hobbynivå.

Re: Använda Pic 18 med avbrott i c, tips?

Postat: 31 december 2018, 08:26:22
av Icecap
Jag använder MPLAB X och XC8, fungerar helt OK. Kompilern tar hand om att spara de nödvendiga bits & bytes.

Re: Använda Pic 18 med avbrott i c, tips?

Postat: 31 december 2018, 10:11:56
av AndersG
Håller med tidigare talare. Finns massvis med exempel i dokumentationen.

Re: Använda Pic 18 med avbrott i c, tips?

Postat: 31 december 2018, 10:21:23
av BJ
Okej. Jag får ta en titt. :)

Re: Använda Pic 18 med avbrott i c, tips?

Postat: 31 december 2018, 10:26:28
av Icecap
Ett exempel, saxat från ett fungerande program:

Kod: Markera allt

void interrupt high_priority HIGH_ISR(void)
  { // High Priority interrupt
  }

void interrupt low_priority ISR(void)
  { // Low Priority interrupt
  }
Såklart kräver detta att det ska vara en PIC med ställbar high/low priority interrupt.
Använder man bara en enkel prioritet ser ISR-deklarationen ut såhär:

Kod: Markera allt

void interrupt ISR(void)
  { // Interrupt
  }
Context-Switching fixar kompilern men man ska fortfarande själv ta hand om att kolla vilket interruptflag som är orsaken till interrupten.

Re: Använda Pic 18 med avbrott i c, tips?

Postat: 31 december 2018, 10:29:39
av BJ
Okej. Det ser ju enkelt och bra ut. :)
Tack.