№4 Жұмыс AVR микроконтроллердің сегіз разрядты
таймерін үйрену
Жұмыстың мақсаты
ATmega853
5 микроконтроллер таймерімен танысу. ТО таймерімен жұмыс.
Бағдарламада 8-разряд таймерінің есептеп уақыт және счетчиктің импульсті
модуляциялық сигналы.
Жұмысқа түсініктеме
At
mega8535 микроконтроллері үш таймерлік жалпы нұсқауға ие:екі сегіз
разрядты таймері ТО және Т2, бір он алты разрядтық Т1 таймері.
Барлық таймерлер жұмыстың мүмкіндігін келесі тәртіптерге бөлуге
болады:
а) түсудің уақытын өлшеу;
б) счетчиктер үшін сыртқы жағдай (Т2-ден басқа);
в) шығыстық сигнал контроллерінің кең импульсті модуляция сигналын
анықтау (ШИМ);
г) нақты уақыттағы уақыттың сапалы жұмыс мүмкіндігі (Т2 таймер
жұмысының асинхронды режимі).
Таймерді қосу үшін кіріс\шығыс кезінде контроллердің микросхемалық
берілуі (Таймерлердің сыртқы әлемін қосу) кіріс\шығыс порт алтернативтік
функцияны қолдану. Алтернативтік функция порты таймердің регистрі арқылы
қосылады. Алтернативтік функцияны қосқаннан кейін порттың нақты биті
таймер ақпаратын кіргізу және шығару үшін ғана қолданылады, бұл битті
34
цифрлік кәрәс\шығыс кезінде қолдану мүмкін емес.Алтернативті функция
портының жұмысы үшін таймер 1 кестеде келтірілген.Бұл таймердің шығыстық
сыртқы счетчик режимін тарату кезінде микросхеманың нақты биттік портын
кіріс\шығыс шешімімен қосу керек.ШИМ режимінің таймер жұмысы кезінде
таймер шығысы нақты бит портын қосады.
Кесте 1
Таймерді қолданып, алтернативтік функция порты
Таймер
Мәні
Жазылуы
Порт шешімі
ТО
ТО
ТО таймерінің сыртқы кірісі
РВО
ОСО
ТО таймерінің сыртқы шығысы
РВЗ
Т1
Т1
Т1 таймерінің сыртқы кірісі
РВ1
ОС1А А сыртқы шығысының Т1 таймері
PD5
ОС1В
В сыртқы шығысының Т1 таймері
PD4
Т2
TOSC1
1 сыртқы шешім таймерінің резонаторын
Т2 таймері үшін қосу
РС6
TOSC2
2 сыртқы шешім таймерінің резонаторын
Т2 таймері үшін қосу
РС7
ОС2
Т2 таймерінің сыртқы шығысы
PD7
Ескерту: Алтернативтік функция портының биттерінің алдын-ала
қорытындысы кезінде кірістік немесе шығыстық конфигурлеу үшін
қолданылады. Мысалы, ОСО алтернативтік функцияны қолдану кезінде
ақпараттар үшін ТО таймерін РВ3 микросхемалық шығыс ретінде белгіленген:
6ит DDB3 1-ге тең.
Таймерден үзіліссіз
Микроконтроллер таймерінің үзіліссіз жұмысын жіберу және бұғаттау
TIMSK регистрі арқылы орындалады – таймерден үзіліссіз маскалық регистрі.
TIMSK регистр биттері 2-ші кестеде корсетілген,ал олардың нұсқаулықтары 3-
ші кестеде көрсетілген
Кесте 2
TIMSK таймерінің үзіліссіз маскалық реистрі
Бит номері
7
6
5
4
3
2
1
0
Бит атауы OCIE2 TOIE2 TICIE1 OCIE
1A
OCIE
1B
TOIE1 OCIEO
TOIEO
Оқу /жазу
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Бастапқы
мәні
0
0
0
0
0
0
0
0
Таймер
Т2
Т1
ТО
35
Кесте 3
TIMSK регистрінің биттік атаулары
Бит
номері
Бит атауы
Нұсқау
7
OCIE2
Т2 таймеріне ұқсас үзіліссіз флагқа рұқсат ету
6
TOIE2
Т2 таймерінің толысуы үзіліссіз флагқа рұқсат ету
5
TICIE1
Т1 таймерін ұстау кезінде флагқа үзіліссіз рұқсат ету
4
OCIE1A
Т1 таймері А-ға ұқсау флагының үзіліссіз рұқсат
і і
3
OCIE1B
Т1 таймері В-ға ұқсау флагының үзіліссіз рұқсат
етілуі
2
TOIE1
Т1 таймерінің толысуы үзіліссіз флагқа рұқсат ету
1
OCIEO
ТО таймеріне ұқсас үзіліссіз флагқа рұқсат ету
0
TOIEO
ТО таймерінің толысуы үзіліссіз флагқа рұқсат ету
Таймерден индикацияның үзіліссіз келуі TIFR регистрі арқылы орындалады –
таймерден үзіліссіз флаг регистрі. Регистр түрі 4-ші кестеде көрсетілген, ал биттер
нұсқауы 5-ші кестеде көрсетілген.
Кесте 4
TIFR таймерінің үзіліссіз флаг регистрі
Бит номері
7
6
5
4
3
2
1
0
Бит атауы
OCF2 TOV2 ICF1 OCF
1A
OCF
1B
ТО VI OCFO TOVO
Оқу /жазу
R/W
R/W R/W R/W
R/W
R/W
R/W
R/W
Бастапқы мәні
0
0
0
0
0
0
0
0
Таймер
Т2
Т1
ТО
Кесте 5
TIFR
регистр битінің атауы
Бит
номері
Бит
атауы
Нұсқау
Вектордың
үзіліссіз
анықтамасы
Векторлық
үзіліссіздік
тің номері
7
OCF2
Т2 таймеріне ұқсас үзіліссіз
ф
TIMER2 СОМР
4
6
TOV2
Т2 таймерінің толысуы үзіліссіз
флагқа рұқсат ету
TIMER20VF
5
5
ICF1
Т1 таймерін ұстау кезінде
флагқа үзіліссіз рұқсат ету
TIMER1 САРТ
6
36
4
OCFIA
Т1 таймері А-ға ұқсау флагының
үзіліссіз рұқсат етілуі
TIMER 1
COMP А
7
3
OCF1B
Т1 таймері В-ға ұқсау флагының
үзіліссіз рұқсат етілуі
TIMER 1
COMP В
8
2
ТО VI
Т1 таймерінің толысуы үзіліссіз
флагқа рұқсат ету
TIMERIOVF
9
1
OCFO
ТО таймеріне ұқсас үзіліссіз
флагқа рұқсат ету
TIMERO COMP
20
0
TOVO
ТО таймерінің толысуы үзіліссіз
флагқа рұқсат ету
TIMERO_OVF
10
TIFR
регистріндегі флагтың бар болуы кезінде бірлік дәрежеде болады.
Бағдарламаның үзіліссіздігін жіберу кезінде аппарат"О"-ге ысырылады.
ТО таймерінің сипаттамасы
AVR
микроконтроллерінде ТО сегізразрядты таймерді қолдану үшін 3 арнайы
регистрі қолданылады:
-
TCNTO (Timer Count)
есептік регистрі
-
OCRO (Output Compare Register)
теңдік регистрі;
-
TCCRO (Timer/Count Control Register)
басқару регистрі.
-
TO
таймері 3 режимде жұмыс жасайды:
-
уақытша интервалдарды қалыптастыру;
-
сыртқы кодерлердің счетчигі;
-
кең импульсті модулятор.
ТО таймерінің жұмыс кезінде 2 үзіліс генерленеді:
-
TCNT0
регистр счетын толтырылуы кезінде;
-
есептік TCNT0 регистр мен салыстыру OCRO регистрінің сәйкестігі .
-
TIFR
регистрінде үзіліс флагы бар, рұқсат беру үзілісі TIMSK регистрінде
қолданылады.
TCNT0
регистрі реверсивті счетчикті көрсетеді. Таймердің жұмыс режиміне
тәуелді счетчик регистрі нөлдік дәрежеге ысырылады,әр шығыс импульстері
инкрементирленеді немесе декреминтерленеді.Регистр кез-келген уақытта оқу үшін
және жазу үшін қосулы болады. TCNT0 регистр контроллерін қоректендіру кезінде
нөлдік мәнге ие болады.
Счетчик мәнәнінің диапазонын ауыстырғанда 0...255 мәнін құрайды.Счетчикті
жеткізу кезінде максималды мәні 255 және кезектегі импульстік мәндерді жіберу
үшін счетчик мәні нөлге өзгереді және. TIFR регистрінің TOVO счетчигін толтыру
үшін үзілісті генерлейді. (3.4.5 кестеден көреміз). Үзілісті болдыру TIMSK
регистрінің TOIEO разрядын «1»-де орналастыруға рұқсат береді.
OCRO регистрі толық сегізразрядтық санға ие, TCNT0 регистр счетчигінің
ұстауы мен салыстырмалы нәтежиесіне. TIFR регистрі OCFO үзіліссіз флагының
осы регистрлер кезінде тең болған жағдайда орындалады(егер бұл үзіліссіз TIMSK
регистрі үшін рұқсат етілсе).Одан басқа,регистрлердің мәндері ұқсау кезінде
37
ОСО микроконтроллер жағдайы өзгеруі мүмкін.Бұл жағдай егер ТО таймер
шығысы ОСО шешімімен қосылса және РВЗ микроконтроллерінің шешімін
(DDB3=1)-
ге сконфигурациялаған жағдайда орындалады.
TCCR0 регистрі ТО таймер жұмысын басқару үшін белгіленген. Регистр
форматы 6-шы кестеде, биттердің нұсқауы 7-ші кестеде көрсетілген.
Кесте 6.
TCCR0 басқару регистрінің разряды
Бит номері
Бит атауы
Нұсқау
7
FOCO
ОСО шешім жағдайы ықтиярсыз ауыстыру
(Normal және СТС режимінде)
3,6
WGM01:WGMOO
Таймер жұмысының режимі
WGM01 WGM00
жұмыс режимі
0 0 Normal
0 1 ШИМ фазалығы
1 0 СТС (қосылыс кезіндегі түсу)
1 1 ШИМ тездік
5,4
COMOl:COMOO
ОСО таймерінің шығыс қосылымы
COMOl СОМОО
ОСО шығыс жағдайы
0 0 ОСО шығыс өшірілген
0 1 жұмыс режимінен тәуелді
1 0 ОСО шешімі «0» де орнатылады
1 1 ОСО шешімі «1»де орнатылады
2...0
SC02...SC00
Бөліністі басқару
SC02 SC01 SC00
бөлініс коэффициенті
0 0 0 Таймер өшірілген
0 0 1Кдел=1
0 10 Кдел=8
0 1 1Кдел=64
10 0Кдел=256
1 0 1Кдел=1024
110 Подключен вход ТО (фронт ақуалы )
1 1 1 ТО кірісі қосылған (фронт негізгісі )
Кесте 7.
TCCR0
басқару регистрі
Бит номері
7
6
5
4
3
2
1
0
Бит атауы FOCO WGM0
COMO
СОМО
WGM0
SC02
SC01
SC00
Оқу /жазу
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Бастапқы мәні
0
0
0
0
0
0
0
0
|