Sida 1 av 1

Flera olika externa interups

Postat: 27 mars 2006, 21:56:20
av ankan
Hur ska jag kunna ta in flera olika externa interups till en pic. Koppla alla parallellt med en diod eller finns något annat smartare?

Postat: 27 mars 2006, 22:18:05
av sodjan
Vilken "pic" ?
Kvantifiera "flera".

Finns inget generellt svar, dete beror (bl.a) på ovanstående...

Postat: 27 mars 2006, 23:21:50
av $tiff
Koppla dem på varsin interruptpinne.

Postat: 27 mars 2006, 23:50:50
av ankan
Tex 16F628 har bara en interuppinne vad jag vet. RB0.

När jag syftar på flera, menar jag typ 5 st beroende på hur lätt det går att åstakomma. Kör man I2C så är det inte särskillt svårt men jag vill helst slippa ha massa extra komponenter.

Postat: 27 mars 2006, 23:56:24
av bearing
Kolla i databladet 14.6.3 samt 5.2 (Det finns 4 till interruptkällor på PORTB)

Postat: 27 mars 2006, 23:58:28
av $tiff
Du kan ju skaffa en roligare PIC med massvis av avbrottspinnar.
Annars går det ofta bra med dioder. Du kan bygga den så att avbrottspinnen dras låg om något händer (normalläge styrs med pullup), sen läsa av varje individuell pinne om det behövs.
Ett alternativ är ett högfrekvent timeravbrott där du pollar pinnarna du kopplat signalerna till.

Postat: 28 mars 2006, 07:53:46
av PHermansson
Håller med bearing: Databladet 14:6 -
The PIC16F62X has 10 sources of interrupt:
...
PORTB Change Interrupts (pins RB7:RB4)
...

Postat: 28 mars 2006, 08:33:46
av ankan
Tackar.. Vad gör RB0/INT till skillnad mot övriga pinnar?

Postat: 28 mars 2006, 09:00:28
av DeVille
Nu är jag inte inne på PIC..

Men om du ställer in allt rätt så när du får ett interrupt på RB0 ex. så går den automatiskt till en viss adress i koden, där det står vad den ska göra sedan.

Postat: 28 mars 2006, 13:18:08
av sodjan
> Vad gör RB0/INT till skillnad mot övriga pinnar?

Vad menar du med "gör" ??

Egenskaperna för alla pinnar finns i PORT delen av databladet.
Interupt har ett helt eget kapitel.

Postat: 29 mars 2006, 02:06:38
av $tiff
DeVille skrev:Nu är jag inte inne på PIC..

Men om du ställer in allt rätt så när du får ett interrupt på RB0 ex. så går den automatiskt till en viss adress i koden, där det står vad den ska göra sedan.
Nja, alla interrupt delar på en vektor.

Postat: 29 mars 2006, 18:20:25
av Chribbe76
ankan skrev:Tackar.. Vad gör RB0/INT till skillnad mot övriga pinnar?
External interrupt (RB0) triggar på stigande flank eller fallande flank beroende på hur man ställer in det.
Interrupt-on-pin change(RB4 till RB7) triggar alltid på både stigande och fallande flank.