Bruk Rx avbrudd på PIC16f877 å motta verdier fra PC

D

dark_ph0enix

Guest
Hi! Jeg er ny på området og jeg kommer hit og ydmykt be om innsikt din: grin: Jeg programmering en 16f877 fra Microchip (ved hjelp av High-Tech kompilatoren) og jeg kom over en situasjon hvor jeg trenger å få 3 verdier fra PC (sendt av MATLAB). Mitt spørsmål, kan resepsjonen oppstå når som helst, så den logiske ideia ville være å bruke RX avbryte. Hvordan kan jeg gjøre dette? Jeg kan ikke synes å finne eksempler i C for avbrudd og også, noen ide om hvordan jeg skal låse avbryte for å motta disse tre verdier? Takk på forhånd J
 
Her er en link til en av de beste online PIC tutorials jeg har kommet over: [URL = "http://www.gooligum.com.au/tutorials.html"] Gooligum PIC Tutorials [/URL] Veiledningene omfatter både baseline og mellomtone PICS bruke Assembly og Hi-Tech C. PIC16F877 er en mellomtone PIC slik at du ønsker å konsentrere seg om følgende to sett av tutorials: [URL = "http://www.gooligum.com.au/tut_midrange. html "] Midrange PIC Assembler Tutorials [/URL] [URL =" http://www.gooligum.com.au/tut_midrange_C.html "] Midrange PIC Hi-Tech C Programming Tutorials [/URL] Veiledningen er meget profesjonelt utført , er i PDF-skjema med nedlastbare kildekode og best av alt er helt gratis. Mellomtone Hi-Tech C Tutorials begynne dekker Avbryter på leksjon 3 og fortsette å introdusere avbryte teknikker gjennom resten av leksjonene. Start med tutorials og hvis du fortsatt har spørsmål, bare spør. Håper de hjelp i dine bestrebelser. BigDog
 
den beste måten er å henvise datablad av PIC16f877 for konfigurering relevante registre. og hva mener du med låse avbryter?
 
@ Bigdogguru Takk, jeg ser inn i de tutorials =) @ nikhil_jain jeg allerede har konfigurert interrupts, problemet er, er det ingen eksempel hvordan du stiller et avbrudd i selve koden i dataarket. Og hva jeg mente med låsing var, når avbruddet ble aktivert, vil den forbli der for å motta både 3 verdier. Takk for svar J
 
Hei, jeg ikke sikker på om de riktige synatx. Men hvis det ikke fungerer vil jeg sende riktig syntaks fra min PC på jobben. Du wouid gjør det slik: unsigned char rxbuf; unsigned char index; bit rx_flag; void interrupt ISR (void) {if (RXIE & RXIF) {RXIF = 0; rxbuf [index + +] = RXDATA; Hvis (indeks> 3) { index = 0; rx_flag = 1;}}} koden ovenfor er et eksempel på hvordan avbryte fungerer. Sørg for at registrene for USART er riktig konfigurert, og periperal så vel som den globale avbrudd og overføringshastigheten er riktig. Du kan utføre service på rx_flag i main rutine MN
 
Hei, jeg ikke sikker på om de riktige synatx. Men hvis det ikke fungerer vil jeg sende riktig syntaks fra min PC på jobben. Du wouid gjør det slik: unsigned char rxbuf; unsigned char index; bit rx_flag; void interrupt ISR (void) {if (RXIE & RXIF) {RXIF = 0; rxbuf [index + +] = RXDATA; Hvis (indeks> 3) { index = 0; rx_flag = 1;}}} koden ovenfor er et eksempel på hvordan avbryte fungerer. Sørg for at registrene for USART er riktig konfigurert, og periperal så vel som den globale avbrudd og overføringshastigheten er riktig. Du kan utføre service på rx_flag i main rutine MN
Jeg tror det er det = D Jeg skal prøve at kodebit morgen, skal jeg gi deg beskjed hvis det fungerer: grin: takk på forhånd ^ ^
 
Min UART eksempel bruke [URL = "http://shahrulnizam.com/pic-lesson-uart-module/"] RX Interrupt [/URL].
 

Welcome to EDABoard.com

Sponsor

Back
Top