Laboratoriya mashg‘ulot №1


Laboratoriya mashg‘ulot № 4


Download 206.18 Kb.
bet7/7
Sana08.01.2022
Hajmi206.18 Kb.
#253022
1   2   3   4   5   6   7
Bog'liq
O'TDT labaratoriyalar

Laboratoriya mashg‘ulot № 4


Mavzu: Taymerlarni boshqarishni o’rganish

Ishdan maqsad: Arduino qurilmasi taymerni ulash orqali qanday texnik qulay imkoniyatlarni va xayotimizda texnik ish unumdorligini oshirish uchun Arduino qurilmasini o‘rganib chiqamiz.

Kerakli jixozlar:

  • Arduino plata qurilmasi.

  • Breadboard.

  • USB Kabel.

  • Kerakli ehtiyot qismlari.

Jixozlarning vazifalari:

8 bitli AVR chipidagi standart Arduino taxtalarida bir vaqtning o'zida bir nechta taymer mavjud. Atmega168 va Atmega328 chiplarida uchta Timer0, Timer1 va Timer2 taymerlari mavjud. Shuningdek, ularda nosozlikdan himoya qilish yoki dasturni qayta tiklash mexanizmi sifatida foydalanish mumkin bo'lgan qo'riqchi taymeri mavjud. Har bir taymerning ba'zi xususiyatlari.

Taymer0:

Taymer0 - bu 8 bitli taymer, demak uning hisoblash registrida 255 tagacha raqamlar saqlanishi mumkin (ya'ni, imzosiz bayt). Timer0 standart Arduino vaqtinchalik funktsiyalari (masalan, kechikish () va millis () tomonidan ishlatiladi, shuning uchun oqibatlari haqida qayg'ursangiz, uni chalkashtirmaslik yaxshiroqdir.


Dasturdan foydalanish:

Ushbu taymerlardan foydalanish uchun AVR-da sozlash registrlari mavjud. Taymerlarda juda ko'p bunday registrlar mavjud. Ulardan ikkitasi - taymer / hisoblagichni boshqarish registrlari sozlama parametrlarini o'z ichiga oladi va TCCRxA va TCCRxB deb nomlanadi, bu erda x - taymerning raqami (TCCR1A va TCCR1B va boshqalar). Har bir registr 8 bitdan iborat va har bir bit konfiguratsion o'zgaruvchini saqlaydi. Atmega328 ma'lumotlar jadvalidan olingan tafsilotlar:


C++ dasturlash muhitda dastur yozish

// avr-libc kutubxonasi o'z ichiga oladi

# o'z ichiga oladi

# o'z ichiga oladi

# aniq LEDPIN 13

bo'sh joyni o'rnatish ()

{

     pinMode (LEDPIN, OUTPUT);



     // Timer1-ni ishga tushirish

     cli (); // global uzilishlarni o'chirish

     TCCR1A = 0; // TCCR1A registrini 0 ga o'rnating

     TCCR1B = 0;


     // to'xtatib qo'yish Timer1 toshishini yoqish:

     TIMSK1 = (1 << TOIE1);

     // CS10 bitini sozlang, shunda taymer soat tezligida ishlaydi:

     TCCR1B | = (1 << CS10);


     sei (); // global uzilishlarni yoqish

}

____


bo'sh joyni o'rnatish ()

{

     pinMode (LEDPIN, OUTPUT);


     // Timer1-ni ishga tushirish

     cli (); // global uzilishlarni o'chirish

     TCCR1A = 0; // registrlarni 0 ga sozlang

     TCCR1B = 0;


     OCR1A = 15624; // match registrini o'rnatish

     TCCR1B | = (1 << WGM12); // CTC rejimida yoqish


     // Bitlarni CS10 va CS12 ni 1024 ga bo'lish nisbati bilan sozlang

     TCCR1B | = (1 << CS10);

     TCCR1B | = (1 << CS12);
     TIMSK1 | = (1 << OCIE1A); // tasodif bilan to'sib qo'yishni yoqish

     sei (); // global uzilishlarni yoqish



}

Xulosa

Men ushbu labaratoriya ishini bajarish davomida Arduino qurilmasi taymerni ulash orqali qanday texnik qulay imkoniyatlarni va xayotimizda texnik ish unumdorligini oshirish uchun Arduino qurilmasini o‘rganib chiqdim
Download 206.18 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling