Mit Rx-Interrupts auf PIC16F877, um Werte aus PC empfangen

D

dark_ph0enix

Guest
Hallo! Ich bin neu auf der Seite und ich komme hier und demütig bitten um Ihr Einblick: grin: Ich bin der Programmierung eines 16f877 von Microchip (mit High-Tech-Compiler) und ich kam in eine Situation, wo ich bis 3 Werte aus den erhalten müssen PC (eingesandt von MATLAB). Meine Frage, die Rezeption kann jederzeit auftreten, so die logische IDEIA wäre RX-Interrupt benutzen. Wie kann ich dies tun? Ich kann nicht scheinen, um Beispiele in C für Interrupts zu finden und auch keine Ahnung, wie ich die unterbrechen, um diese 3 Werte zu erhalten sperren? Vielen Dank im Voraus J
 
Hier ist ein Link zu einem der besten Online-PIC-Tutorials die ich kenne: [URL = "http://www.gooligum.com.au/tutorials.html"] Gooligum PIC Tutorials [/URL] Die Tutorials umfassen sowohl Baseline und Midrange-PICs mit Montage-und Hallo-Tech C. Der PIC16F877 ist ein Midrange-PIC so dass Sie wollen sich auf die folgenden zwei Sätze von Tutorials zu konzentrieren: [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 Hallo-Tech C Programming Tutorials [/URL] Das Tutorial ist sehr professionell gemacht sind in PDF-Formular mit herunterladbaren Quellcode und am besten von allen sind absolut kostenlos. Die Midrange Hallo-Tech C Tutorials beginnen für Interrupts auf Lektion 3 und weiterhin zu unterbrechen Techniken durch die verbleibenden Unterrichtsstunden einzuführen. Beginnen Sie mit den Tutorials und wenn Sie noch Fragen haben, fragen Sie einfach. Hoffe, dass sie bei Ihren Bemühungen helfen. BigDog
 
der beste Weg ist, um das Datenblatt des PIC16F877 für die Konfiguration relevanten Registern beziehen. und was meinst du mit sperren unterbricht das?
 
@ Bigdogguru Danke, ich werde in den Tutorials suchen =) @ nikhil_jain Ich habe bereits die Interrupts konfiguriert, das Problem ist, gibt es kein Beispiel, wie man einen Interrupt eigentliche Code in das Datenblatt eingestellt. Und was ich gemeint habe, indem er verriegelt wurde, wenn der Interrupt aktiviert wurde, wäre es dort zu bleiben, sowohl 3-Werte erhalten. Vielen Dank für Ihre Antworten J
 
Hallo, ich mir nicht sicher über die korrekte synatx. Aber wenn es nicht funktioniert, werde ich die richtige Syntax von meinem pc senden bei der Arbeit. Sie wouid tun es so aus: unsigned char rxbuf; unsigned char index; Bit rx_flag; void unterbrechen ISR (void) {if (RXIE & RXIF) {RXIF = 0; rxbuf [index + +] = RXDATA; Wenn (index> 3) { index = 0; rx_flag = 1;}}} Das oben gezeigte Code ist ein Beispiel dafür, wie die Unterbrechung funktioniert. Stellen Sie sicher, dass die Register für die USART richtig konfiguriert ist, und die periperal sowie die globalen Interrupts und die Baudrate korrekt ist. Sie können den Dienst der rx_flag in Ihrem Hauptprogramm MN
 
Hallo, ich mir nicht sicher über die korrekte synatx. Aber wenn es nicht funktioniert, werde ich die richtige Syntax von meinem pc senden bei der Arbeit. Sie wouid tun es so aus: unsigned char rxbuf; unsigned char index; Bit rx_flag; void unterbrechen ISR (void) {if (RXIE & RXIF) {RXIF = 0; rxbuf [index + +] = RXDATA; Wenn (index> 3) { index = 0; rx_flag = 1;}}} Das oben gezeigte Code ist ein Beispiel dafür, wie die Unterbrechung funktioniert. Stellen Sie sicher, dass die Register für die USART richtig konfiguriert ist, und die periperal sowie die globalen Interrupts und die Baudrate korrekt ist. Sie können den Dienst der rx_flag in Ihrem Hauptprogramm MN
Ich denke, dass es = D Ich werde versuchen, dieses Stück Code von morgen, werde ich Sie wissen lassen, ob es funktioniert: grin: Vielen Dank im Voraus ^ ^
 
Meine UART Beispiel mit [URL = "http://shahrulnizam.com/pic-lesson-uart-module/"] RX Interrupt [/URL].
 

Welcome to EDABoard.com

Sponsor

Back
Top