логически симулатор

логически симулатор >>> https://logic.ly/demo

 

волтов делител за +24 волта

волтов делител за +24 волта ще покаем нагледно каква е промяната във стойностите на входящото напрежение, резисторите и изходния волтаж на волтметъра.

тестова платка със измерване с уред наживо в задължителна защото все пак на симулацията на програмата за електрониките не може да се разчита на 100 %

обърнете внимание на стойността на резистора в горния край на делитела вече е килоом и половина. в момента след като е включен ценеровия диод резултата на вотлметъра отново е 4.7 волта.



на следващата графика, сме показали колко е резултата на волтметъра ако диода не е включен.

ТОВА ЩЕ ИЗГОРИ ВЕДНАГА ВХОДА НА ПРОЦЕСОРА !!!!!


 
 

внимавайте изключително много когато работите със входящи напрежения ПО-ГОЛЕМИ ОТ +5 волта !!!! всяка грешка уврежда вашият тестов процесор и макет и ще се наложи да купувате части на ново :)

важен урок за входящите ЦИФРОВИ УПРАВЛЯВАЩИ напрежения

важен урок за входящите ЦИФРОВИ УПРАВЛЯВАЩИ напрежения и/или сигнали към пиновете на процесорите и други цифрови интегрални схеми - ще има и втора част за напрежение +24 волта

ще ви покажа как да направите сигурен делител на напрежение за вход от бутони, всякакви релейни входящи сигнали и други входни импулсни сигнали ПРИСТИГАЩИ към процеора с ПО_ГОЛЯМО ВХОДЯЩО НАПРЕЖЕНИЕ. урока е доста важен защото при различните интеграли разликата между входящата логическа единица 1 и входящата логическа нула 0 е различна.

СПАЗВАЙТЕ КОРЕКТНО СВЪРЗВАНЕТО НА ЕЛЕМЕНТИТЕ, СТОЙНОСТИТЕ И ВХОДЯЩИЯТ ВОЛТАЖ !!!! ПРИ НЕКОРЕКТНО СВЪРЗВАНЕ, ЛИПСА НА ЕЛЕМЕНТИ И/ИЛИ ДРУГИ СТОЙНОСТИ ЩЕ ИЗГОРИТЕ ВХОДА НА ПРОЦЕСОРА ИЛИ ИНТЕГРАЛНАТА СХЕМА КЪМ КОЯТО ПОДАВАТЕ СИГНАЛА.

СИМУЛАЦИЯТА В ПРОГРАМАТА Е РЕАЛНА СИТУАЦИЯ, МОЖЕТЕ ДА СИ ЗАПОИТЕ НА ПЛАТКА И ДА ИЗМЕРИТЕ СЪС ТОЧНОСТ КАКВИ ЩЕ СА СТОЙНОСТИТЕ НА НАПРЕЖЕНИЕТО ПОДАВАНО КЪМ ПРОЦЕСОРА !!!!!




за да сте сигурни че цифровият входящ сигнал с по-голям волтаж е досатъчно висок и силен да задейства пинът на процесора можете да направите следният делител на напрежение СЪС СТАБИЛИЗИРАЩ ДИОД /ценер/ който няма да позволи напрежението да ПРЕМИНЕ НАД 4.7 волта.

ако на входа на процесора или друг чип пуснете напрежение ПО_ГОЛЯМО от 5 волта със сигурност ще изгорите входа !!!!

за това един входящ ТОЧЕН делител на напрежение СЪС СТАБИЛИЗИРАЩ ДИДОД ще осигури постоянна и стабилна работа на схемата.



преди да правите каквито и да е измервания и прекъсване/съединяване на елементите на платката, махнете чиповете от цоклите !!!! ако не е възможно, направете си експериментална платка и измерете стойностите на напрежението във различните точки на свързване на схемата.

пробни измервания можете да направите и при различни стойности на резисторите, входящото напрежение и/или свързан или несвързан ценер и резистори.

ВНИМАНИЕ!!!! съветвам ви да не преминавате границата от +24 волта на входящото напрежение във тази схема. за задачите когато входящото напрежение е по-високо от +24 волта има други варианти, чипове и цели схемни решения за отработване на входящи цифрови сигнали с голям волтаж !!!!!! ако не знаете какво правите потърсете помощ във интернет, при колега или във форумите за електроника

промяната на стойностите на резисторите ще доведе до различни резултати на волтметъра БЕЗ ДА СТЕ ВКЛЮЧИЛИ ДИОДА !!!! за това на експериментална платка запоите всички елементи като сложите на диода ключ с който лесно да включвате изключвате диода към схемата.

смяната на резисторите с различни стойности ще има резултати в които напрежението на волтметъра ще бъде по-ниско от 5 волта. ТОВА НЕ Е ДОБРЕ, защото няма да сработи ценеровия диод във стабилизиращ режим и няма да се получи нищо на практика.

в интернет има доста информация за това как работят ценеровите диоди, можете да прочетете и спецификацията на самия диод. тези ценерови диоди са от български търговец, има ги навсякъде, масово са употребявани в различни електронни схеми.

на следващата схема ще ви покажа какво ще се случи ако свържете ценера директно към +12 волта БЕЗ резистор. НЕ ПРАВЕТЕ ТОВА !!!! ДИОДА ЩЕ ИЗГОРИ ВЕДНАГА !!!!! в симулацията волтметъра показва 0.00 волта. това ще покаже и вашият волтметър НО ЦЕНЕР ДИОДА ЩЕ ИЗГОРИ ВЕДНАГА !!!!

ако все пак по някаква причина ценер диода изгори по време на работа на схемата, имате голям шанс да е изгорял само диода. пробвайте да смените само ценер диода със същия, като внимавате в посоката на свързване. след смяната на ценера, ако напрежението на изхода на делитела е 4.7 волта значи схемата на делитела работи коректно. следователно и процесова или друга схема трябва да получава коректен сигнал

курсови и дипломни работи

екипът на карадев еоод предлага на ученици и студенти изработка на практическите части на курсови и дипломни работи.
поради зачестилия интерес от страна на ученици и студенти към нашите продукти решихме да публикуваме малко информация за всички учащи, които имат задание за изработка на електроника, софтуер и реална работеща система към всяка тяхна курсова или дипломна работа.
екипът ни предоставя всички чертежи, схеми и графики към суответното задание, като хартиената част остава за ученика или студента да си я направи сам.
заданието ще бъде разгледано, оценено като стойност. ще се сметне цена за изпълнението до 4 броя от всяка платка и пълен комплект електроника към тях. монтажът на електронните елементи може да бъде от наша страна или ако ученика или студента искат могат и те да си налепят платките.
софтуера ще бъде написан спрямо схемното решение на  заданието, като целият сорс код и готови компилирани файлове се предават на ученика или студента във формата на архивиран /*.rar/ файл след заплащане на поръчката.
допълнителни обяснения по софтуера и хардуерната част са напълно възможни. всеки ученик или студент може допълнително да изиска разяснение на софтуера/сорс код/ към неговият проект.
за повече информация или поръчки : This email address is being protected from spambots. You need JavaScript enabled to view it.
тел :0887 28 49 01

   

обработка на прекъсвания в процесорите

здр, ето и новият урок за пик процесорите, който е изключително важен за всеки добър програмист на пик процесори. прекъсванията са много важни за правилната и веднагическа работа на цялата електронна система управлявана от пик процесор или изобщо какъвто и да е процесор, компютър, iot и други. ще ви покажа доста добра статия преведена от мен във началният урок за прекъсванията със няколко реда код на С/С++. ще можете да прочетете доста информация за прекъцванията, тяхната функция, обработка, методи и друга много полезна информация.

в следващите уроци ще направя директен материал с код за 16F1827 за нагледно покзване на всички необходими функции за регистриране, обработка и освобождаване от прекъсване от таймерите, бутони и/или други периферийни устройства.


в следващите уроци ще направим пълен преглед на прекъсванията за пик процесора 16F1827 с който ще дадем и код за употреба в симулацията на протеус. показаните графики в този преведен урок са за друг процесор от същата фамилия 16F887, но като цяло методът на работа, обработка и показване на работата на прекъсванията е един и същ.

УРОКЪТ Е ДОСТА ДЪЛЪГ И ОСОБЕННО ВАЖЕН ЗА АБСОЛЮТНО ВСИЧКИ ПРОГРАМИСТИ !!!! МОЖЕТЕ ДА СИ ГО СВАЛИТЕ НА КАКЪВТО ИСКАТЕ ФАЙЛ, ДА СИ ГО РАЗПЕЧАТАТЕ И ДА СИ ЧЕТЕТЕ КАКТО ВИ Е УДОБНО !!!!

РАЗБИРАНЕТО НА ПРИНЦИПА НА ПРЕКЪСВАНИЯТА И ПРАВИЛНАТА ОБРАБОТКА И РАБОТА ВЪВ ВСЕКИ ЕДИН КОД ГАРАНТИРА ПЕРФЕКТНА РАБОТА НА СВЪРЗАНИЯТ ХАРДУЕР, МЕХАНИКА, КОНТРОЛНИ СИСТЕМИ И КОМУНИКАЦИЯ КЪМ ВСЕКИ ЕДИН ПРОЦЕСОР !!!!

С КОРЕКТНИЯТ КОД НАПИСАН ОТ ВАС В МПЛАБ И ХС8 ЩЕ МОЖЕТЕ ДА ПОСТИГНЕТЕ 100% ЕФЕКТИВНОСТ НА ВАШИТЕ ЕЛЕКТРОННИ ИЗДЕЛИЯ, КАКТО И НАЙ-ВАЖНОТО, ДОВОЛНИ КЛИЕНТИ И ПЕРФЕКТНО НАПРАВЕНИ ОБЕКТИ ОТ ВСИЧКИ ВИДОВЕ БИЗНЕС !!!! ЧЕТЕТЕ ВНИМАТЕЛНО ПЕЧЕЛИТЕ ОБЕЗАТЕЛНО !!!!



Прекъсванията в PIC процесорите

В този урок ще научите какво представляват прекъсванията в микроконтролерите? Как действително работи механизмът за прекъсване? И как да реагираме (обслужваме) прекъсващите сигнали? Ще научите цялата фундаментална механика на тези процеси. Ще разберете и логическите схеми на прекъсване в нашата PIC16F платформа на микроконтролера.

Този урок включва основни теоретични концепции, които са съществени за всякакви по-нататъшни изследвания. Програмирането на почти всички предстоящи модули включва обработка на прекъсващи сигнали. Затова е изключително важно внимателно да прочетете този урок. Разбирането на представените тук концепции и механика ви прави по-добре запознати с вашата система. И следователно, ограничава вероятността за получаване на логически грешки.

И никога не забравяйте, винаги можете да зададете всеки въпрос, който искате, когато пожелаете. Ще ги прочета и ще направя всичко по силите си, за да ви помогна да се оправите. Да започваме!

Какво представляват прекъсванията?

Прекъсванията са основно вътрешни / външни сигнали, които прекъсват изпълнението на основната програма. Докато четете тази статия, основната ви програма/функция/ е “Четене на урока”. Тази основна програма може да бъде прекъсната от много внезапни събития. Ако телефонът ви внезапно е започнал да звъни по време на процеса “Четене”, основната процедура “Четене” ще бъде спряна “Прекъсната”.

Обработката на прекъсващия сигнал зависи основно от източника на прекъсване. Това може да е телефонно звънене на вратата или каквото и да е друго. Всяко прекъсване може и ще прекъсне основната рутинна процедура „Четене“ и изисква малка част от времето си да се справи с това прекъсване. След това можете да възобновите основната процедура, започвайки от мястото, където сте спрели.

Използването на малък флаг за индикация ще ви помогне да си спомните къде сте били в момента на прекъсването! Което е в съответствие със здравия разум. Не можете да започнете да четете тази статия още от самото начало, само защото сте имали внезапно телефонно обаждане (прекъсване)!

Подобна е ситуацията и при микроконтролерите или компютрите като цяло. Всяка програма, изпълнявана от компютър, би могла да бъде спряна чрез прекъсващ сигнал във всеки един момент. Трябва да забележите, че компютърът не може да използва отметка, за да му помогне да си спомни къде е спрял до момента на получаване на сигнала за прекъсване. Ето защо има определена част от паметта, посветена на тази функция. Което ще разгледаме по-подробно по-долу.

Защо имаме нужда от прекъсвания в вградените системи?

всеки процесор (например MCU) и/или компютър може да отговори на всяко събитие в две различни схеми.

Първият се нарича Polling/пуулинг/, който очевидно прави основната рутина/функция/програма/, докато проверява за състоянието на събитието от време на време.

Вторият начин е чрез използване на прекъсвания, което очевидно прави основното рутинно действие през цялото време, докато се случи събитие, което изстрелва прекъсващ сигнал, който на свой ред прекъсва основната процедура. След това MCU ще напусне основната програма, за да изпълни определен предварително дефиниран код за обработка на прекъсването(ISR Handler).

Ето един пример, за да направим разликата много по-ясна. Помислете за следната основна процедура, в която MCU мига LED веднъж / 2 секунди. Изпълнението на този цикъл отнема около 2 секунди. Следователно, MCU може да запише бутон, свързан към входен пин веднъж / 2-секундно. Натискането на този бутон трябва да укаже на MCU да (например да направи нещо ..), което няма да се случи веднага след събитие за натискане на бутона.

От друга страна, системата, задвижвана от прекъсване, незабавно ще реагира на събитие за натискане на бутон, което издава сигнал за прекъсване, който спира текущата основна процедура, дори ако изпълнява макрос закъснение.

метод на постоянна проверка/pooling/
while(1)
{
  LED = 1;
  __delay_ms(1000);
  LED = 0;
  __delay_ms(1000);
  if (Button == 1)  // Polling the button's input pin !
  {
    // Do Something...  
  }
}

Завършването на изпълнението на 1-кръг в този цикъл отнема около 2 секунди време. В която MCU проверява бутона за малка част, приблизително 1uS. Ако имате достатъчно късмет, MCU ще е завършил големите 2 закъснения и ще отговори на събитието ви при натискане на бутон. Но вероятността за този случай всъщност е много ниска. Един от начините да увеличите вероятността да отговорите на натискането на бутона е 100%, е да държите бутона натиснат за не по-малко от 2 секунди!

Което не е ефективно в почти всяка ситуация. долу е симулация на кода, показан по-горе. Посочва се как е по-малко вероятно вашият MCU да отговори на натискането на бутона чрез Polling в сравнение със следния случай „Прекъсване-задвижване“.

управление чрез Прекъсване

От друга страна, за система, задвижвана от прекъсване, основният цикъл ще остане същият, но с премахване на заявката if-statement. Както е показано по-долу.
while(1)
{
  LED = 1;
  __delay_ms(1000);
  LED = 0;
  __delay_ms(1000);
}
Сега, събитие за натискане на бутон ще бъде обработвано при натискане на бутона. MCU ще остави основния цикъл, когато се случи прекъсване, и се насочи към манипулатора/отделна специална функция за прекъсване/ на ISR, който в този пример ще изглежда като кода, показан по-долу
void __interrupt() ISR() //last update of XC8_2019
{
  if (Button_Interrupt == 1)
  {
    // Do Something...
  }
}

ISR манипулаторът/функцията/ ще бъде незабавно изпълнявана при всяко прекъсване. И MCU ще остави каквото и да е, за да отговори на това прекъсващо събитие.

Ето симулация на кодовете, показани по-горе. Показвайки как е напълно гарантирано, че вашият MCU отговаря на вашия бутон, натиснете веднага чрез Прекъсвания. И колко ниска е реакцията на вашата система в случай на използване на метода POLLing.

Тази точка отново ще бъде прегледана много подробно в бъдещите уроци. Но засега трябва да знаете, че е значително по-ефективно да използвате прекъсващите сигнали, за да управлявате действията на вашата система, вместо да проверявате за състоянието на всяко входящо устройство от време на време!

Прекъсвания в микроконтролери

Дизайнерите на хардуер са свършили чудесна работа по внедряването на концепцията за прекъсвания в рамките на MCU. Механиката на тези процеси зависи главно от самата хардуерна реализация, която варира от MCU до друга. Ето защо ще обсъждаме само механизма за обработка на прекъсванията за чипа PIC16F, който използваме. Но в следващия раздел. Засега обикновено ще обсъждаме прекъсванията в микроконтролерите.

Прекъсванията могат да бъдат класифицирани въз основа на източника на сигнала на прекъсване, както и въз основа на начина, по който е реализиран в паметта. Прекъсващите сигнали могат да бъдат генерирани от хардуер или софтуер. Прекъсванията могат да се реализират в паметта като прекъсвания с преекспонирани или неекспонирани прекъсвания. Така че нека класифицираме прекъсванията по-подробно.

Източници на прекъсване - софтуерни и хардуерни

Софтуерни прекъсвания

Програмистът (вие и аз) може нарочно да изстрелва сигнал за прекъсване, когато пожелае, като използва специфични инструкции (например SWI). Този тип прекъсващи сигнали се наричат ​​софтуерни прекъсвания. Защото източникът на сигнала е софтуерна инструкция. Не можем да използваме такова нещо по време на тази серия от уроци. Въпреки това, трябва да знаете, че много процесори имат специфични инструкции, които генерират сигнал за прекъсване на софтуера.

Хардуерни прекъсвания

Почти всички периферни устройства / модули в микроконтролера генерират сигнали за прекъсване, за да посочат различни събития. Ето защо този урок предшества повечето от предстоящите модули. Такива като таймери, ККП, SPI, UART, I2C, ADC, EEPROM и др. Всички тези модули генерират прекъсващи сигнали, за да посочат стартирането, прекратяването или провала на текущата им работа.

Трябва също така да отбележите, че хардуерните прекъсвания могат да бъдат задействани вътрешно или външно. Ето защо много автори в нашата литература наричат ​​вътрешни модули прекъсва „Вътрешни“, а външно задействаните прекъсва „Външни“ прекъсвания. Както и да е, хардуерните прекъсвания са най-често срещаните и нашата работа е да ги обработваме ефективно!

Нашите PIC16F1827 MCU има около 15 източника на хардуерни прекъсвания. Ние ще обсъдим всеки един от тях в съответните уроци по-долу.

Vectored срещу не-Vectored прекъсва

Обзалагам се, че вече сте изучавали вектори в класа по математика / физика. Е, това е един вид свързана концепция тук. Векторираните количества са тези, които имат посока. Следователно, прекъсването на вектори е това, което има специфичен указател, сочещ към неговия ISR манипулатор. От друга страна, прекъсването с неекспониране няма тази функция.

Прекъсвания на Vectored

За прекъсвания на вектори, процесорът знае точно адреса на манипулатора на ISR. Процесорът има предварително определени адреси в паметта (таблица на прекъсване). Когато се задейства прекъсване на векторите, прекъсващият модул / устройство изпраща своя специфичен вектор към процесора през шината за данни. След това CPU ще извърши преглед в таблицата с прекъсвания в паметта. След това се разклонява към кода на ISR манипулатора, свързан с прекъсващото устройство и го изпълнява.
Непрекъснати прекъсвания

За непрекъснати прекъсвания, CPU има фиксиран хардуерен адрес, наречен вектор на прекъсване. Когато се прекъсне прекъсването, процесорът ще изтласка компютъра към стека. След това ще прескочи векторния адрес на прекъсване и след това ще се разклони до кода на обработващия ISR. Което е твърдо кодиран ISR в определена част от паметта.

Трябва да сте забелязали, че процесорът няма представа за това кое устройство / модул е ​​изстрелял този прекъсващ сигнал. Ето защо нашата задача е като програмисти да проверяват периферните устройства (да проверяват флаговете), за да разберете кой уред изисква обслужване. Тогава CPU ще изпълни съответния ISR манипулатор.

Прекъсване на верига в процесорите

Прекъсващата верига е цифрова логическа схема, която задвижва прекъсващите системи в микроконтролера. Ние използваме тази схема за конфигуриране и обработка на прекъсвания. Диаграмата може лесно да бъде намерена в листа с данни (14.11 стр. 153). 18F877



Ако двоичният сигнал x (може да е 0 или 1) е ANDed с 1 (High), резултатът ще бъде същата стойност на x. От друга страна, ако двоичният сигнал x е ANDed с 0 (Low), резултатът ще бъде винаги 0 (Low). Ето защо ние можем да моделираме тези И-врата в диаграмата, показана по-горе, като ON / OFF превключватели. И тук е подобна (но по-проста) диаграма



Както може би сте забелязали, само една жица излиза от веригата за прекъсване и се насочва към процесора. Това е така, защото нашите прекъсвания не са вектори, така че те споделят един общ сигнал за прекъсване на процесора, който няма представа за устройството, което е задействало сигнала за прекъсване.

Конфигурирането на източник на прекъсване е първата стъпка в работата с прекъсвания. Разрешаването на прекъсването на ADC ще доведе до изстрелване на сигнал за прекъсване при всеки успешен процес на конвертиране на ADC, за да уведоми CPU за това. За да се даде възможност на ADC прекъсване сигнал очевидно трябва да зададете всички битове по пътя между този модул и процесора!



а именно, ще поставим бита ADCIE, PEIE и GIE. Сега, когато конвертирането на ADC е завършено. ADCIF ще бъде настроен и сигналът 1 (High) ще достигне до CPU, за да го уведоми, че е настъпило прекъсване. Но сега процесорът няма представа кой модул е генерирал този сигнал!

Ето защо има прекъсващи флагчета, тези битове се задават съответно на прекъсване на устройствата. Ако ADC преобразуването е завършено, се задава бит за флаг ADCIF. Ако Timer1 е достигнал състояние на преливане, битът за TMR1IF е зададен. И така нататък.

При получаване на прекъсващ сигнал, CPU PUSЗадава състоянието на машината в стека и се разклонява към манипулатора на ISR. При което трябва първо да проверим бита за флага, за да определим съответно източника на прекъсване.

Професионален съвет

Битовете на флаговете на прекъсванията се задават автоматично, когато се случи прекъсване, независимо от съответното състояние на разрешаващия бит. Независимо дали е активирано или деактивирано, битовете на флага ще бъдат зададени, когато се получи прекъсване. И програмистът (вие и аз) трябва да изчистите тези флагчета преди да разрешите прекъсванията.

Регистрите, които контролират веригата на прекъсване, са следните 5-регистъра
INTCON PIE1 PIE2 PIR2 PIR2

Тези регистри съдържат и битовете за разрешаване на прекъсване и битовете на прекъсващите флагове. За всеки източник на прекъсване (до 15). В MPLAB XC8, ние сме битови полета със същите имена, които се намират в таблицата с данни за тези битове. Така че е много лесен процес за задаване / изчистване на всеки от тези битове във фърмуера, както ще видим в бъдещите уроци.

Перспектива на прекъсващите бита на флага

В предишния раздел обсъдихме механизма за прекъсване и ролята на прекъсващите флагчета в този процес. Заявихме, че тези битове се задават, когато се случи съответното прекъсващо събитие. И като програмисти, нашата работа е да проверим (провери) тези битове, за да определим устройството за източник на прекъсване. За да се изпълни съответния код на обработващия ISR. И накрая, нашата работа е да изчистим флагчето отново (да бъде 0).
Забележка

Трябва да изчистите флагчетата (в софтуера) при обработка на прекъсването. Забравяйки да изчистите тези флагове, това ще доведе до лудост в поведението на цялата система, която е трудно да се отстрани.

Писане на ISR манипулатори
 
ISR (прекъсване услуга рутинни) манипулатор е част от вашия код, който отива на конкретен блок ROM (памет на програмата). В тази процедура първо трябва да проверите за източника на прекъсване. След това се оправете съответно. И накрая, не забравяйте да изчистите малкото флагче от това прекъсване. Можем да посочим тези стъпки, както е показано по-долу

    Проверете източника на прекъсване
    Работете с прекъсването
    Изчистете малкото флагче

Нека разгледаме пример, в който ще трябва да направите ABC, когато модулът Timer1 препълни, и да направите XYZ, когато конвертирането на ADC е завършено. Конфигурирането на прекъсващата верига, за да могат тези сигнали да достигнат до централния процесор, ще се извърши чрез следния код

ADCIE = 1; // ADC Interrupt Enable Bit
TMR1IE = 1; // Бит за разрешаване на прекъсване за Timer1
PEIE = 1; // Прекъсвания на периферните устройства Активиране на бита
GIE = ​​1; // Глобални прекъсвания Разреши бит

Вашата система би могла да прави каквито и да било задачи в основния цикъл. Независимо от тези задачи, ръководителят на ISR ще бъде записан, като следвате предишните 3 стъпки, както е показано по-долу
void прекъсване ISR ()
{
  if (TMR1IF == 1) // Проверете флага
  {
    // Направете ABC ...
    TMR1IF = 0; // Изчистване на битовете на флага!
  }
  if (ADCIF == 1) // Проверка на флага
  {
    // Направете XYZ ...
    ADCIF = 0; // Изчистване на битовете на флага!
  }
}

void прекъсване ISR ()
{
  if (TMR1IF == 1) // Проверете флага
  {
    // Направете ABC ...
    TMR1IF = 0; // Изчистване на битовете на флага!
  }
  if (ADCIF == 1) // Проверка на флага
  {
    // Направете XYZ ...
    ADCIF = 0; // Изчистване на битовете на флага!
  }
}

Отделете време да се запознаете с този код, тъй като това ще бъде нашият стандартен начин за справяне с прекъсванията в следващите уроци.

Тук прекъсването е резервирана ключова дума за указване, че тази функция е ISR Handler. Името ISR в показания по-горе код е името, което обикновено давам на тази функция. Можете да го наименувате каквото пожелаете, но да го запазите подходящо и да следвате последователна конвенция. За да помогнете сами да препрочитате списъците с кодове в бъдеще и да помогнете на екипа си да разбере какво правите.

екипът на карадев еоод предлага на ученици и студенти изработка на практическите части на курсови и дипломни работи.
поради зачестилия интерес от страна на ученици и студенти към нашите продукти решихме да публикуваме малко информация за всички учащи, които имат задание за изработка на електроника, софтуер и реална работеща система към всяка тяхна курсова или дипломна работа.
екипът ни предоставя всички чертежи, схеми и графики към суответното задание, като хартиената част остава за ученика или студента да си я направи сам.
заданието ще бъде разгледано, оценено като стойност. ще се сметне цена за изпълнението до 4 броя от всяка платка и пълен комплект електроника към тях. монтажът на електронните елементи може да бъде от наша страна или ако ученика или студента искат могат и те да си налепят платките.
софтуера ще бъде написан спрямо схемното решение на  заданието, като целият сорс код и готови компилирани файлове се предават на ученика или студента във формата на архивиран /*.rar/ файл след заплащане на поръчката.
допълнителни обяснения по софтуера и хардуерната част са напълно възможни. всеки ученик или студент може допълнително да изиска разяснение на софтуера/сорс код/ към неговият проект.
за повече информация или поръчки : This email address is being protected from spambots. You need JavaScript enabled to view it.
тел :0887 28 49 01

   

https://www.programiram.com/home

   

уроци, задачи, информация и много други :)
линк >> натисни тук <<<

   

1001 задачи в програмирането
линк >>
натисни тук <<<

   
НАУЧИ МЕ много добър сайт
линк >>
натисни тук <<<