Print

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

Така, да направим разбор на показните две диаграми за двата таймера които ще разгледаме. Първата е за таймер с номер 0, който често употребяваме за най-различни задачи. Кое какво означава :
1.       FOSC/4 е входящата тактова честота от тактовия генератор на процесора. Тактовият генератор може да бъде, както външен кварц или кварцов резонатор, така и вътрешният генератор на процесора. FOSC/4 означава frequency oscilator divide by 4 или преведено означава, че взимаме тактова честота от генератор разделена на 4. Или това е 1 импулс към таймера на всеки 4 подадени от тактовия генератор. Честотните делители ще разгледаме в друг урок с процесорите, но за честотните делители в TTL електрониката има урок написан на блога, както и в нета има доста.

2.       TMR0CS е таймер 0 чип селект e бит от регистър, който има две състояния 0 или 1 за да изберем от къде да постъпи тактов сигнал към таймера. Ако бита има стойност 0 ще използваме тактова честота постъпила от генератора на процесора. Ако стойността е 1 може да подаваме тактова честота към таймера от външен хардуерен генератор например с чип таймера 555 на определен пин на процесора като вход за импулси.

3.       PSA битовете са също възможност за избор на опция при настройката на таймера. Имаме възможност да избираме дали входящата честота да се дели през делител със зададена от нас стойност на делене или директно да постъпи като импулси към таймера.

4.       Следва синхронизиращият блок в който ние нямаме възможност за контрол. Той е хардуерен модул вътре в кристала на процесора и софтуера не може да контролира този модул. Има процесори на които може да се задават разни опции за този модул, но за 16F1829 тази опция не е валидна.

5.       8 bit PRESCALER – този модул е честотен делител с възможност за задаване на коефициента на деление. В пдф файла в регистъра за настройка на таймера има стойностите с които може да се настрои делителя, в зависимост кои битове са 0 и кои 1 от тази част на регистъра.

6.       TMR0 е регистъра на таймер 0, към който сочи цялата електроника в процесора. Ако четете внимателно пдф описанието ще видите че постъпилата честота с определени параметри ще увеличава съдържанието на таймер с +1 докато таймера стигне стойност 255. Този таймер както казахме е 8 битов и максимума на достигане на стойността в регистъра  НЕ МОЖЕ ДА БЪДЕ ПО-ГОЛЯМА ОТ 255 !!! регистърът може предварително да бъде зареден със стойност ОТ КОЯТО увеличаващо да брои таймера нагоре до 255 или това е препълване и прекъсване.

7.       Най-важната част от таймера е неговият флаг за препълване – TMRIF0 . този е флага за таймер 0 който показва кога таймера се е препълнил. Щом флага е вдигнат или това означава че е равен на 1, значи имаме препълване на таймера и ще се изпълнят командите записани във функцията за прекъсване на този таймер. Флагът трябва да се нулира софтуерно, като веднага след това се изпълняват командите във функцията за прекъсването.

8.       Overflow to timer 1 означава че този изход е свързан към таймер 1 като може да се използва ако сте пуснали и използвате и таймер 1.

Category: picprocesori
Hits: 386