Käyttämällä Rx keskeyttää siitä PIC16f877 saada arvot PC

D

dark_ph0enix

Guest
Hi! Olen uusi sivusto ja tulen tänne ja nöyrästi kysyä insight: grin: Olen ohjelmointi 16F877 mikrokontrolleri (käyttäen High-Tech kääntäjä) ja törmäsin tilanteeseen, jossa minun täytyy saada 3 arvot PC (lähetetään MATLAB). Kysymykseni, vastaanotto voi tapahtua milloin tahansa, joten looginen ideia olisi käyttää RX keskeyttää. Miten voin tehdä tämän? En näytä löytävän esimerkit C keskeyttää ja myös, mitään käsitystä kuinka minun pitäisi lukita keskeyttää saada ne 3 arvoa? Kiitos jo etukäteen J
 
Tässä linkki yksi parhaista online-PIC tutorials olen törmännyt: [url = "http://www.gooligum.com.au/tutorials.html"] Gooligum PIC Tutorials [/URL] tutorials kattaa sekä lähtötilanteesta ja keskiäänet vastuuhenkilöt käyttävät yleiskokous ja Hi-Tech C. PIC16F877 on keskitason PIC joten sinun kannattaa keskittyä seuraavat kaksi sarjaa tutoriaaleja: [url = "http://www.gooligum.com.au/tut_midrange. html "] Keskisarjan PIC Assembler Tutorials [/url] [url =" http://www.gooligum.com.au/tut_midrange_C.html "] Keskisarjan PIC Hi-Tech C-ohjelmointi Tutorials [/URL] opetusohjelma ovat erittäin ammattimaisesti tehty , ovat PDF-muodossa ladattavan lähdekoodin ja mikä parasta ovat ilmaisia. Keskisarjan Hi-Tech C Oppaat alkaa kattaa Keskeytykset on oppitunti 3 ja edelleen käyttöön keskeyttää tekniikoita kautta jäljellä oppitunteja. Aloita Oppaat ja jos sinulla on vielä kysyttävää, kysy. Toivottavasti ne auttavat pyrkimyksissänne. BigDog
 
Paras tapa on viitata datalehdestä PIC16f877 konfiguroimiseksi olennaisia ​​rekistereitä. ja mitä te tarkoitatte lukko keskeyttää?
 
@ Bigdogguru Kiitos, minä tutkimme ne tutorials =) @ nikhil_jain Olen jo määritetty keskeyttää, ongelma on, Theres no esimerkiksi miten asettaa keskeyttää itse koodi taulukkonäkymässä. Ja mitä tarkoitin lukitsemalla oli, kun keskeytys on aktivoitu, se jäisi sinne saadakseen molemmat 3 arvoa. Kiitos vastauksista J
 
Hei, en ole varma oikeasta synatx. Mutta jos se ei toimi minä lähetän oikea syntaksi minun pc töissä. Sinä wouid tehdä sen näin: unsigned char rxbuf; unsigned char indeksiin; bittinen rx_flag; void keskeyttää ISR (void) {if (RXIE & RXIF) {RXIF = 0; rxbuf [index + +] = RXDATA if (index> 3) { index = 0; rx_flag = 1;}}} edellä koodi on esimerkki siitä, miten keskeyttää työt. Varmista, että rekisterit USART on määritetty oikein, ja periperal sekä maailmanlaajuinen keskeyttää ja siirtonopeus on oikea. Voit palvelun rx_flag teidän tärkein rutiini MN
 
Hei, en ole varma oikeasta synatx. Mutta jos se ei toimi minä lähetän oikea syntaksi minun pc töissä. Sinä wouid tehdä sen näin: unsigned char rxbuf; unsigned char indeksiin; bittinen rx_flag; void keskeyttää ISR (void) {if (RXIE & RXIF) {RXIF = 0; rxbuf [index + +] = RXDATA if (index> 3) { index = 0; rx_flag = 1;}}} edellä koodi on esimerkki siitä, miten keskeyttää työt. Varmista, että rekisterit USART on määritetty oikein, ja periperal sekä maailmanlaajuinen keskeyttää ja siirtonopeus on oikea. Voit palvelun rx_flag teidän tärkein rutiini MN
luulen että se = D Tulen yrittää että koodinpätkä huomenna, annan sinulle, mikäli se toimii: grin: Kiitos jo etukäteen ^ ^
 
Omat UART esimerkiksi käyttää [url = "http://shahrulnizam.com/pic-lesson-uart-module/"] RX Interrupt [/URL].
 

Welcome to EDABoard.com

Sponsor

Back
Top