T/C0 (Taymer/Counter0) TCCR0 registr yordamida amalga oshiriladi (Taymer/Counter0 nazorat registri) va ro'yxatdan o'ting va TCNT0 (Taymer/ Counter0). TCCR0 registrining 0…2 bitlari (CS00, CS01 , CS02 ) taymer hisoblagichi T/C0 ish rejimini o'rnatadi: bitlarga yozishda
CS00, CS01, CS02 mos ravishda 0, 0, 0 taymer hisoblagich qiymatlari to'xtatildi; 1, 0,0 - TCNT0 registrining mazmuni oshiriladi
soat generatorining har bir tsiklida; 0, 1, 0 - har 8-siklda; 1, 1, 0 - har 64-
tsiklda; 0, 0, 1 - har 256-siklda; 1, 0, 1 - har 1024-siklda; 0, 1, 1 va 1, 1, 1 qiymatlari to'plami
mos ravishda salbiy va ijobiy qirralarning bo'ylab tashqi manbadan
impulslar sonini hisoblash rejimi. T/C0 taymer hisoblagichi TCNT0 registri to'lib ketganda uzilish so'rovini hosil qiladi . TIMSK maskalari registrida taymer hisoblagichining to'lib ketishi T/C0 1- bitga (TOIE0) mos keladi; TIFR bayroq registrida , bit 1 (TOV0). TOIE0 raqamini marta o'rnatish -
115
Machine Translated by Google
TCNT0 registrining to'lib ketishi uzilishini hal qiladi ; TOIF0 bayrog'i TCNT0 registrini to'ldirishda uzilish so'rovi qabul qilinganda o'rnatiladi . Uzilishlarni ishlatadigan dasturning namunasi bu erda ko'rsatilgan
guruch.
34 .; uzilish vektor maydoni
.org $0000
RJMP RESET .org
INT0addr RJMP
EXT_INT0 .org OVF0addr RJMP TMR0_INT
; asosiy dasturga o'tish
; tashqi uzilish INT0
; taymer uzilishi T/C0
; tashqi uzilish ishlovchisi INT0 EXT_INT0: ; ...
; taymerni uzish tartibi T/C0 TMR0_INT: ; ...
RETI
; qaytish
QAYTA O'RNATISH:
; asosiy dastur
LDI
R16, (1<
OUT MCUCR, R16; ijobiy jabhada
LDI
R16, (1<
OUT GIFR, R16; tashqi uzilish bayroqlarini tozalash
OUT GICR, R16; INT0 tashqi uzilishini yoqish
; taymer uzilishini ishga tushirish T/C0
LDI
R16, 1<
OUT TCCR0, R16; chastota bo'linishi yo'q
LDI
R16, 1<
OUT TIMSK, R16; taymer uzilishini yoqish T/C0
abadiy:
YO'Q
RJMP abadiy
; bo'sh buyruq (hech qanday operatsiya); cheksiz tsikl
Machine Translated by Google
Uzilishlardan foydalanadigan dasturlar uzilish vektorlari doirasini aniqlashdan boshlanadi. Vektor manzillarini uzish
ramziy nomlar va .org direktivasi yordamida ko'rsatiladi. Interrupt
vektor manzillari odatda uzilish vektor maydonidan keyin darhol joylashgan uzilish tartiblariga o'tishga nisbatan buyruqlarni joylashtirish uchun ishlatiladi. To'xtatish tartiblari ko'rsatmalar bilan tugaydi
Do'stlaringiz bilan baham: |