ПредишенСледващото

"Честота" Преди да се отправите към опознаването на таймера се определи основната концепция. По-просто казано, броят на повторенията в секунда. Това означава, че ако имате втори пляскат с ръце два пъти, след това удря честотата ще бъде равен на 2 Hz. Ако в продължение на 3 пъти, след това 3 Hz.

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

Вътрешен източник честота може да варира ( "плува") поради температура и т.н. следователно счита за неподходящо за сериозни проекти, а ние имаме в действителност следователно тази употреба е стабилен източник на външна честота - кварцов кристал (кварц). Един вариант на изпълнение на кварцов резонатор:

урок 5

Сега, нещо за таймера. Таймерът работи на същата честота като микроконтролер. Понякога тя може да бъде много бързо, така че използването на честотния делител, който намалява броя на кърлежи от 8/64/256/1024 ... отново. Всичко това е включено в софтуера.

Да предположим, че сме избрали делител 1024 г. микроконтролер честота 8 MHz, а след това, след като скоростта на делител таймер ще бъде:
8 000 000/1024 = 7813 Hz - честота, при която работи ни таймер. На прости думи, по един секунден таймер tiknet 7813 пъти.

Но тук ние съчетани тези 2 стойности и какво следва? За да направите това, е полезно нещо като прекъсване от съвпадение. Това означава, че съвпадението на таймера и сравни регистрирате, текущата си програма ще спре. След това стартирайте секцията код, който абсолютно не е свързан с основната програма. Вътре в този раздел можете да напишете всичко, което искате и не се тревожи за това, което е подобно на това да засяга прилагането, тя изпълнява само когато стойността на таймера мачове регистъра сравнение.

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

Сега ние сме готови да пиша нашата програма. Ето защо, ние създадем проект с помощта на съветника на проекта. След дисплея на ремаркето, ние имаме също така вече знам как е).

урок 5

Отидете в раздела таймери, и след това да обсъдим по-подробно:

урок 5

Изберете 7813 курс, както и задаване на марката срещу т прекъсне за: сравнение на мач. По този начин ние сме посочили, че съвпадението на стойностите за извършване на прекъсване (т.е. това, което е написано по-горе). Прекъсване ще изпълни 1 път в секунда, т.е. ние трябва tiknut 7813 пъти, така че ние се превежда броя 7813 в системата на шестнадесетичен и да получите 1e85. Това е всичко, и писмено в регистъра сравнения Comp А. Сравнението регистъра пример А 16-битов, така че броят им е по-голяма от 2 ^ 16 = 65536 не можем да пиша.

Ние генерира, продължавайте да се изчисти нашия код. Ще бъде нова неясна част от код

// Таймер 1 изход за сравнение шут от прекъсване на услуги
прекъсне [TIM1_COMPA] невалидни timer1_compa_isr (свободен)

Това е същата прекъсване. Тя е в рамките на тези скоби, ние можем да напишете кода, че искаме да извършват на редовни интервали. Ние сме една секунда. Така че е логично да се създаде променлива, че ние ще се увеличи 1 път в секунда, т.е. 1 път на прекъсване. Затова инициализиране на променлива INT S = 0; и неговото прекъсване ще се увеличи от 0 до 59. Стойността на променливата показва на LCD дисплея. Без номера, всичко е много проста.
Полученият код.

се вземе като основа не 7,813kGts и 8MHz. Като цяло, аз съм обсъждане не винаги е така. По моя преценка максималната честота. Търсим си период. 1/8000 000 = 0,000000125секунди. Това е продължителността на един тик. Виж колко съм в десния сегмент от кърлежи 10mks = 0.00001 секунди 0.00001 / 0.000000125 = 80 кърлежи на макс честота 10mks на. Това е нормално за регистъра за сравнение. Ако имаше повече от 255 или 65 535 (в зависимост от таймера), а след това ще трябва да се гледа на следващата делител.

Здравейте, как да се получи забавяне на времето в секунди -delay_s (10) например. Кълна се при съставянето и е необходимо да се използва мс, ни ....

Свързани статии

Подкрепете проекта - споделете линка, благодаря!