употреба на таймерите в пик процесорите – тест с процесор 16F1829

урок за настройване и управление на таймерните блокове във пик процесорите с примерен софтуер и диаграми

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

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

В описанието на процесора таймерните блокове са няколко на брой като се различават по номер и брой битове на таймерите. Имаме няколко 8 битови таймера и няколко 16 битови таймера
8 битовите таймери са с възможност на броене до 255, както знаете максимум на стойността, която може да запишете във 8 битова клетка е 255 числова стойност, но възможните комбинации са 256 защото 0 също е вариант за запис на 8 битовият регистър/клетка.
16 битовите таймери са двубайтови като максимум стойноста може да бъде до 65535 числова стойност, като прибавим и вариант 0 стават 65536 варианта.

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

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

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

Можете също с таймер и със аналоговия изход на процесора да направите честотен генератор не само на правоъгълни ами и на всякакви импулси, като определяте честотата, периода, амплитудата на сигнала, също и коефициента на запълване на импулса /duty cycle/, когато ползвате ШИМ модулация или така наречения PWM сигнал за управление на мощността на различни товари.
Схема  на таймерите които ще разгледаме във този урок. И двата таймера са с почти еднакво софтуерно управление, което ще разгледаме след като обясним показаните графики.

много добър сайт за уроци за ПИК ПРОЦЕСОРИТЕ >>> https://deepbluembedded.com/

волтов делител за +5V>>3,3V = една бърза схема за волтов делител със симулация в протеус за да се види по-ясно как се прави комуникация със пик процесор през конвертор от сериен порт към усб за компютър.

при процесорите със захранване +5 волта изходите също са на +5 волта. ако включите конвертора директно, веднага ще изгорите входния му пин RX, който очаква напрежение НЕ ПО-ВИСОКО ОТ +3,3V волта. на някой конвертори предлагани на пазара има обозначение на гърба на платката че RX пина е на +3,3 волта.

!!!!! ОБЪРНЕТЕ ВНИМАНИЕ НА МОДЕЛА НА КОНВЕРТОРА КОЙТО ПОЛЗВАТЕ И ПОТЪРСЕТЕ ИНФО В НЕТА ЗА НАЧИНА НА УПОТРЕБА !!!!!! в описанието трябва да пише какъв волтаж са RX входа приемащия и TX изхода предаващия !!!!

ако трябва пуснете си някакъв сериен терминал и пращайте данни докато измервате напрежението и на двата пина TX/RX докато установите какъв е волтажа който ви трбява към и от процесора с който ще комуникарате !!!!

!!!! ГРЕШКИТЕ ИЗГАРЯТ ПИНОВЕТЕ НА ПРОЦЕСОРА И / ИЛИ КОНВЕРТОРА ВЕДНАГА !!!!!

в последната графика съм показал снимка от нета където е свързан по стандартен начин HC-05 блутут модул към стандартна ардуино платка. както виждате волтов делител има само за предаващата част ОТ ПРОЦЕСОРА КЪМ БЛУТУТ МОДУЛА, като приемащата е свързана директно. захранването е стандартно +5 волта и за двете схеми. модели на конвертори можете на намерите в нета всякакви.

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


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

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







 


 

работа с указатели и float данни - МНОГО ВАЖЕН УРОК !!!!
https://www.youtube.com/watch?v=4L-oet6P_lI

https://www.youtube.com/watch?v=4L-oet6P_lI
 

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