Impuls T1 oyoqchadan kelishi mumkin.
NORMAL rejimni tashkil qilish uchun qo‘yilgan masalaning mohiyatidan kelib chiqib jadvaldagi qiymatlardan biri TCCR1B registriga yoziladi. DSHda yozilishicha oddiy rejimda (Normal Mode)taymer hisoblash jarayonini quyidagi ketma -ketlikda amalga oshiradi. NORMAL rejimni tashkil qilish uchun qo‘yilgan masalaning mohiyatidan kelib chiqib jadvaldagi qiymatlardan biri TCCR1B registriga yoziladi. DSHda yozilishicha oddiy rejimda (Normal Mode)taymer hisoblash jarayonini quyidagi ketma -ketlikda amalga oshiradi. n, n+1, n+2, ... 253, 254, 255, 0, 1, 2, ... (Taymerni bir idish deb tasavvur etsak. n, n+1, n+2, ... 253, 254, 255, 0, 1, 2, ... lar idishga quyilayotgan suv tomchilari. Normal xolatda taymer 255 tomchi suvga to‘ladi) YA’ni taymer registri TCNT0da (The Timer/Counter) 0 dan 255 gacha sonlar ketma - ket o‘zgarib turadi. Bunda 255 dan keyin 0 kelganda, ya’ni TCNT0 == 0 bo‘lgandataymer “to‘lgan” bo‘ladi (taymera_0). NORMALrejimni maqsadi, dastur bajarilishi jarayonidataymer to‘lsa“Uzilish” hodisasini amalga oshirishdir. Taymer to‘lganini bildiruvchi registr bu – TIFRregistri. Taymer to‘lganda TIFRregistri bayrog‘i ko‘tariladi. TIFR = 0b00000100 qiymat (TOV1 razryad TS1 uchun xizmat qiladi) qabul qiladi. Uzilish jarayoni boshlanishi bilan TOV1=0 qiymat oladi. YA’ni bayroq tushiriladi. Endi “Uzilish” jarayonini amalga oshirish uchun uzilishga ruxsat olish kerak. Bu ruxsatni TIMSK registri beradi. TIMSK=0b00000100 qiymat (TOIE razryad TS1 uchun xizmat qiladi) uzilishga ruxsat beradi. Uzilish amalga oshishi uchun SREG registrining Irazryadi I=1 qiymat olishi kerak. Uzilish ro‘y berishi bilan I=0qiymat oladi. Uzilish tugagandan keyin RETI podprogrammasi uni qiymatini qaytaradiI=1. DemakIni qiymati bizga bog‘liq bo‘lmagan holda avtomatik ravishda boshqariladi. Qolgan xamma registrlarni faoliyatini dvsturchi o‘zi boshqarishi kerak.
http://kompy.info
Do'stlaringiz bilan baham: |