|
Embedded system
attachInterrupt()ning sintaksisi
|
bet | 4/4 | Sana | 24.05.2024 | Hajmi | 1,67 Mb. | | #253068 |
Bog'liq 8- ma\'ruza uzilishlar
Embedded system
attachInterrupt()ning sintaksisi - attachInterrupt(interrupt, function, mode), attachInterrupt(pin, function, mode)
- interrupt: uzilish raqami (int- interrupt).
- PIN: PIN raqami (faqat Arduino Dueda foydalaniladi).
- function: uzilish sodir bo'lganda chaqiriladigan funksiya; bu funksiya parametrlarsiz bo'lishi va hech qanday qiymatlarni qaytarmasligi kerak. Bunday funksiya ba’zan uzilish ishlovchisi deb ataladi.
- mode: uzilishni ishga tushirish shartini belgilaydi. Oldindan belgilangan to‘rtta qiymatdan birini qabul qilishi mumkin:
- LOW – pinda uzilish signallar past bo'lganda ishga tushadi.
- CHANGE - pindagi uzilish holati o'zgarganda ishga tushadi.
- RISING - pin pastdan yuqoriga o'zgarganda uzilish ishga tushadi.
- FALLING - PIN yuqoridan pastga o'zgarganda uzilish ishga tushadi.
- Arduino Due-da yana bitta qiymat mavjud:
- YUQORI - uzilish pin baland bo'lganda ishga tushadi (faqat Arduino Due).
Embedded system
Dastur volatile byte count; void setup() { Serial.begin(9600); pinMode(3, INPUT_PULLUP); attachInterrupt(1, myInterrupt, FALLING); } void loop() { Serial.println(count); delay(500); } void myInterrupt(){ count++; } Dastur kodi - const byte button = 2; // №2 Arduino Nano uchun tugmaga chiqish
- const byte led = 4; // №4 Arduino Nano,uni svetodiodga ulash
- volatile boolean state = false; // svetodiod holati, false - ВЫКЛ, true - ВКЛ
- /*------------------------------------------------*/
- void setup() {
- pinMode(button, INPUT); // kirish sifatida tugma uchun port yo'nalishini o'rnatish
- pinMode(led, OUTPUT); // chiqish sifatida LED uchun portning ishlash yo'nalishini belgilash
- attachInterrupt (0, button_press, RISING); // signalni past darajadan (0 V) yuqori darajaga (5 V) o'zgartirish uchun uzilish ,
- No 0 (raqamli pin 2) o'rnatish, ya'ni. tugmachadan signalning oldingi chetida.
- // portda yuqori daraja (5 V) paydo bo'lganda, uzilish ishga tushiriladi va uzilishni qayta ishlovchi ishga tushadi - funksiya
- button_press }
- void loop() { digitalWrite (led, state); // LEDni yoqing / o'chiring}
- void button_press () {
- static unsigned long millis_prev;
- if (millis() - 100 > millis_prev) state = !state; // LED holatini o'zgartiring (noto'g'ri - OFF, rost - ON) + kontaktning sakrashidan himoya
- millis_prev = millis(); }
Embedded system
|
| |