Използване на Rx прекъсва на PIC16F877, за да получават стойности от PC

D

dark_ph0enix

Guest
Здравейте! Аз съм нов в сайта и аз идвам тук и смирено да попитам за вашето прозрение: усмивка: аз съм програмиране 16f877 от микрочип (с помощта на High-Tech компилатор) и се натъкнах на ситуация, в която трябва да получи 3 стойности от PC (изпратено от MATLAB). Моят въпрос, на рецепцията може да се случи по всяко време, така че логично ideia ще бъде да се използва RX прекъсва. Как мога да направя това? Не мога да изглежда да се намерят примери в C за прекъсва и също така, някаква идея как и трябва заключване на прекъсване, за да получите тези три ценности? Благодаря предварително J
 
Ето един линк към един от най-добрите онлайн уроци PIC Аз съм попадал на: [URL = "http://www.gooligum.com.au/tutorials.html"] Gooligum PIC Tutorials [/URL] уроци обхващат както изходно ниво и от среден клас ПОД събрание и С. PIC16F877 на Hi-Tech, среден клас PIC, така че вие ще искате да се концентрира върху следните два комплекта от уроци: [URL = "http://www.gooligum.com.au/tut_midrange. HTML "] среден клас PIC Assembler Tutorials [/URL] [URL =" http://www.gooligum.com.au/tut_midrange_C.html "] за среден клас PIC Hi-Tech Уроци за програмиране на C [/URL] настойнически са много професионално направено , са в PDF форма с за изтегляне изходния код и най-доброто от всички, са абсолютно безплатни. Средните Hi-Tech C уроци започват да прекъсва на урок 3 и продължават да се въведе прекъсване техники чрез останалите уроци. Започнете с уроци и ако все още имате въпроси, просто попитайте. Надявам се, те помагат във вашите начинания. BigDog
 
най-добрият начин е да се позове на листа с данни на PIC16F877 за конфигуриране на съответните регистри. и какво искаш да кажеш от заключване на прекъсва?
 
@ Bigdogguru Благодаря ви, аз ще се търси в тези уроци =) @ nikhil_jain вече съм конфигурирал прекъсва, проблемът е, че там няма пример как да се настроите за прекъсване в действителният код в листа с данни. А какво имам предвид чрез заключване, след прекъсването е била активирана, тя ще остане там, да получат и двете 3 стойности. Благодаря за отговорите J
 
Здравейте, аз не съм сигурен за правилното synatx. Но ако тя не работи, ще изпрати правилния синтаксис от моя компютър по време на работа. Можете wouid го правя така: неподписани характеристики rxbuf; неподписани характеристики индекс; малко rx_flag; нищожен прекъсват ISR (Void) {ако (RXIE & RXIF) {RXIF = 0; rxbuf [индекс + +] = RXDATA; Ако (индекс> 3) { индекс = 0; rx_flag = 1;}}} горният код е пример за това как за прекъсване работи. Уверете се, че в регистрите за usart е правилно конфигуриран, и periperal, както и глобалната прекъсва и скорост е вярна. Можете да услугата rx_flag в основната си рутинни MN
 
Здравейте, аз не сте сигурни относно правилната synatx. Но ако тя не работи, ще изпрати правилния синтаксис от моя компютър по време на работа. Можете wouid го правя така: неподписани характеристики rxbuf; неподписани характеристики индекс; малко rx_flag; нищожен прекъсват ISR (Void) {ако (RXIE & RXIF) {RXIF = 0; rxbuf [индекс + +] = RXDATA; Ако (индекс> 3) { индекс = 0; rx_flag = 1;}}} горният код е пример за това как за прекъсване работи. Уверете се, че в регистрите за usart е правилно конфигуриран, и periperal, както и глобалната прекъсва и скорост е вярна. Можете да услугата rx_flag в основната си рутинни MN
Мисля, че това е = D аз ще се опитам това парче код утре, аз ще ви позволи да знам дали това работи: усмивка: Благодаря предварително ^ ^
 
UART например използвате [URL = "http://shahrulnizam.com/pic-lesson-uart-module/"] RX Прекъсване [/URL].
 

Welcome to EDABoard.com

Sponsor

Back
Top