Mga Computer

Paano Gumamit ng Mga Nakagambala sa Pic at dsPic MicroControllers

May -Akda: Laura McKinney
Petsa Ng Paglikha: 5 Abril 2021
I -Update Ang Petsa: 13 Mayo 2024
Anonim
Paano Gumamit ng Mga Nakagambala sa Pic at dsPic MicroControllers - Mga Computer
Paano Gumamit ng Mga Nakagambala sa Pic at dsPic MicroControllers - Mga Computer

Nilalaman

Nakumpleto ng may-akda ang kanyang huling proyekto sa proyekto sa engineering sa dsPic micro-Controller, na nakakakuha ng malawak na pananaw sa mga aparatong ito.

Ang mga nakakagambala ay bumubuo ng gulugod ng pamamaraan ng pag-cod sa mga micro-controler at ang kanilang buong pag-unawa ay mahalaga para sa mga programmer na handang gumawa ng mga code sa antas ng dalubhasa. Ibinibigay ng tutorial na ito ang lahat ng mahahalagang impormasyon na kinakailangan ng mga programmer ng Pic upang simulang gamitin ang mga nakakagambala sa kanilang mga micro controller code at application.

Ang mga dsPic30f series na mga micro-controller code kasama ang pagpapaunlad ng Microchip na IDE MplabX ay ginagamit upang ipakita ang tutorial na ito dito, ngunit ang parehong pamamaraan ay naaangkop sa lahat ng mga Pic micro-controler pati na rin ang mga micro-Controller mula sa iba pang mga tagagawa.

Pinayuhan ang mga gumagamit na kumunsulta sa mga nauugnay na sheet ng data para sa eksaktong rehistro at mga pangalan ng bit.


Ano ang Isang Makagambala sa isang MicroController?

Ang pagkagambala ay maaaring tukuyin sa pangkalahatan bilang isang pagpapaandar na na-trigger sa paglitaw ng isang paunang natukoy na, hard-link na kaganapan sa isang micro-controller at hindi sa pamamagitan ng normal na tawag sa pagpapaandar.

Ang pagpapaandar na ito ay karaniwang tinatawag na isang Nakagambala na Rutin sa Serbisyo.

Ang lahat ng mga nakakagambala ay may natatangi:

  1. Makagambala sa vector.
  2. Naunang natukoy na kaganapan na naka-link nang mahirap.
  3. Makagambala sa paganahin ang mga bits sa mag-rehistro ng paganahin ang paganahin.
  4. Makagambala sa mga piraso ng watawat sa gumagambala sa pagrehistro ng bandila.
  5. Maputol ang prioridad.

Makagambala sa Vector

Ang lahat ng mga pagkagambala ay tinukoy ng isang tukoy makagambala vector natatangi iyon sa makagambala lamang.

Kaganapan na mahirap maiugnay

Ang makagambala na vector ay kasunod na hard-link sa paglitaw ng a paunang natukoy na kaganapan sa isang micro-controller para sa:

  • Tumatanggap ng data sa buffer ng data ng UART.
  • Tumatanggap ng data sa CAN bus.
  • Paghambingin ang tugma ng mga halaga ng rehistro ng PWM.
  • Pagkumpleto ng conversion ng ADC.
  • Marami pa depende sa uri, pamilya at modelo ng micro-controller.

Ang isang talahanayan na ibinigay sa pagtatapos ng artikulong ito ay naglilista ng ilang mga halimbawa ng mga hard-link na ito, nakakagambala na nakaka-trigger na kaganapan.


Makagambala Paganahin ang Bit

Ginagamit ang bit na ito upang paganahin ang makagambala. Ang isang nakakagambala ay buhayin kung ang bit na ito ay nakatakda sa isa at hindi pinagana kung ang bot na ito ay nakatakda sa zero.

Matakpan ang Flag Bit

Kung kailan man ang isang kaganapan na naka-link sa magambala ay nagaganap ang gumambala na bandila ay nasuri. Kung ang makagambala ay 0, pagkatapos ay ang mga nakakagambala na pag-trigger. Kung ang pag-abala ng flag ay hindi nakatakda sa zero, ang makagambala ay hindi magti-trigger.

Nakagambala Priority

Kapag higit pa sa isang makagambala ay dapat na naka-code, dapat magpasya na alin ang unang ihahatid kung ang isang kaganapan ng pag-trigger ay nangyayari para sa kanilang dalawa. Ang isang nakakaabala na kaunting priyoridad sa Interrupt Control ng Priority ng Pagkontrol ay tumutukoy sa priyoridad para sa kani-kanilang pagkagambala. Makagambala sa pinakamataas na priyoridad, ibig sabihin, anim ang naihahatid muna.

Paano Gumagawa ang Mga Nakagambala sa Mga MicroController?

Nag-uudyok ang mga nakakagambala kapag ang anumang mga kaganapan na mahirap na maiugnay, halimbawa ang ipinaliwanag sa itaas, ay nangyayari. Gumagana ang mga ito sa sumusunod na pagkakasunud-sunod:

  1. Nangyayari ang naka-link na kaganapan.
  2. Napagtanto ng taga-kontrol ang paglitaw ng kaganapang iyon at sinuri ang nagambala na bandila.
  3. Kung ang kaganapan ng pag-trigger para sa higit pa pagkatapos ay isang interrupts ang natanggap pagkatapos ay i-check ang priyoridad ng pagkagambala.
  4. Kung ang makagambala na bandila ay malinaw, ito ay awtomatikong itinakda at ang counter ng programa ay lumilipat sa kani-kanilang nakakagambala na vector na may pinakamataas na priyoridad sa code.
  5. Ang code sa kaukulang pag-andar ng nakakagambala ay nagsisimula sa pagpapatupad mula sa ibaba ng gumambala na vector.
  6. Matapos makumpleto ang pagpapatupad ng nakagawian na serbisyo na nakumpleto, ang isang nakakagambala na watawat ay malinis sa paglabas ng gawain.
  7. Ipagpatuloy ang programa ng micro-controller mula sa parehong lugar mula sa kung saan ito tumalon upang ipasok ang nakagambala na gawain sa serbisyo.
  8. Ang nakakagambala ay muling naisasagawa kung muling mangyari ang kaganapan.

Pangkalahatang Pamamaraan at Code na Tumawag sa isang Nakagambala

Maaaring mapasimulan ang isang nakakagambala kasunod sa mga hakbang na ito:


1) Itakda ang makagambala Paganahin ang Bit

Ang makagambala na paganahin ang bit para sa kani-kanilang pagkagambala ay dapat na paganahin mula sa makagambala magparehistro muna upang ang pagkagambala ay naaktibo at ang paglitaw ng kani-kanilang mahirap na naka-link na kaganapan ay pinapagana upang mag-agaw ng abala.

2) Itakda ang Nakagambala na Bit Priority

Kung maraming mga pagkagambala ang gagamitin sa isang code, maaaring italaga sa kanila ang mga priyoridad batay sa kanilang kahalagahan sa aplikasyon gamit ang mga bitak ng Priority Priority sa Rehistro ng Pagkagambala ng Pagkakaiba ng Pagkagambala.

void Interrupt_Init (void) {IEC2bits.PWMIE = 1; IPC2bits.PWMIP = 1; } // Ang pagpapaandar na ito ay nagbibigay-daan sa PWM Makagambala na paganahin ang kaunti sa rehistro ng Makagambala Paganahin ang Control 2. // Ang pagpapaandar na ito ay maaaring tawagan sa pangunahing katawan bago habang (1) loop sa pamamagitan ng normal na tawag sa pagpapaandar. // Mas mainam na gumamit ng isang nakakagambala na pagpapaandar ng pagpapasimula kung ang maraming mga pagkagambala ay paganahin. // Gayunpaman hindi kinakailangan na gamitin ang pagpapaandar na ito dahil ang utos ay maaari ring direktang nakasulat sa pangunahing pagpapaandar. // Ang pagkagambala sa prayoridad ay nakatakda sa 1 (pinakamababa).

3) Piliin ang kani-kanilang nakakagambalang vector

Piliin ang kani-kanilang nakakagambalang vector at ilagay ito sa header ng makagambala na pag-andar o makagambala sa gawain sa serbisyo. Ipinapakita ng code sa ibaba kung paano gumawa ng isang nakakagambala na gawain sa serbisyo mula sa makagambala na vector.

Ang isang listahan ng mga nakakagambala na vector ay ibinibigay din sa artikulong ito para sa sanggunian.

walang bisa __attribute __ ((makagambala, auto_psv)) _PWMInterrupt (void) {// iyong code dito IFS2bits.PWMIF = 0; } // Ang tag na "_PWMInterrupt" ay ang natatanging nakakagambala na vector sa pagpapaandar na ito. // Ang pagpapalit nito sa isa pang nakakagambalang vector ay magbabago rin sa uri ng makagambala.

4) Code ang nais na operasyon

Ang nais na operasyon ay maaaring naka-code sa makagambala na pag-andar.

5) I-clear ang Mag-abala na bandila kapag lumabas sa pagpapaandar

Kapag lumalabas sa makagambala ang kani-kanilang nakakaabala na watawat ay dapat na malinis upang ang pagkagambala ay maaaring ma-trigger muli.

Mga Uri ng Pagkagambala

Ang kanilang maaaring maging kasing dami ng 50+ uri ng mga nakakagambala sa mga micro-Controller na mula sa mga pagkagambala ng I2C, pagkagambala ng SPI, pagkagambala ng quadrature encoder at timer na nakakagambala depende sa uri, pamilya at modelo.

Ang ilan sa mga nakagambala na natagpuan sa pic micro-Controller ay ibinibigay sa talahanayan sa ibaba upang mapahusay ang pag-unawa.

Talahanayan ng gabay para sa mga nakakagambala na mga vector at makagambala sa mga kaganapan ng pag-trigger.

Makagambala PangalanMakagambala sa VectorTrigger Stimulus

Nakagambala ang PWM

_PWMMagambala

Paghambingin ng PWM ang tugma sa pagitan ng time base register at pagbibilang ng rehistro.

Nakagambala ang ADC

_ADCInterrupt

Kumpleto na ang pag-convert ng ADC

Tumanggap ng Umaantala ang UART

_U2RXMagambala

Ang pagtanggap ng data sa UART ay tumatanggap ng rehistro

UART Transmitting Interrupt

_U2TXInterrupt

Naglo-load ng data sa rehistro ng paghahatid ng UART

Pagkagambala ng Pagkamali

_FLTAIpagambala

Pagbabago ng antas ng lohika sa FLT pin

Panlabas na Makagambala

_INT3Magambala

Pagbabago ng antas ng lohika sa Int0 / 1 na mga pin

Mababang Gagambala ng Boltahe

_LVDMagambala

Pagtuklas ng mababang boltahe

Ang artikulong ito ay tumpak at totoo sa abot ng kaalaman ng may-akda. Ang nilalaman ay para lamang sa mga layuning pang-impormasyon o aliwan at hindi kapalit ng pansariling payo o payo sa propesyonal sa mga usapin sa negosyo, pampinansyal, ligal, o panteknikal.

Kagiliw-Giliw Na Ngayon

Inirerekomenda Para Sa Iyo

6 Mga Mobile App Ang Kailangang Ganap na Magkaroon ng bawat negosyante
Phone

6 Mga Mobile App Ang Kailangang Ganap na Magkaroon ng bawat negosyante

Ako ay i ang nego yante at i ang mananalik ik na mananalik ik a pamamagitan ng prope yon, i ang blogger at manlalakbay a pamamagitan ng pagkahilig.Ang entrepreneur hip ay maaaring maging i ang hamon n...
Mga Tutorials upang Matulungan kang Magsimula sa Pagpinta ng Digitally Tulad ni Bob Ross
Mga Computer

Mga Tutorials upang Matulungan kang Magsimula sa Pagpinta ng Digitally Tulad ni Bob Ross

Manunulat, mananalik ik, tagapagtaguyod ng pagpapabuti a arili, kahaliling a trologi t, at i ang matatag na naniniwala na ang Mercury ay dapat irain.Napanood mo i Bob Ro a Twitch, o marahil ay narana ...