• Embedded system Dastur
  • Serial.println(count);
  • Embedded system attachInterrupt()ning sintaksisi




    Download 1,67 Mb.
    bet4/4
    Sana24.05.2024
    Hajmi1,67 Mb.
    #253068
    1   2   3   4
    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
    Download 1,67 Mb.
    1   2   3   4




    Download 1,67 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Embedded system attachInterrupt()ning sintaksisi

    Download 1,67 Mb.