Harici kesme ile servoyu çalıştıramıyorum!
  • Harici kesme ile servoyu çalıştıramıyorum. Aklıma ilk gelen, harici kesmeye girerken servo için kullanılan kesmeler uygulanamıyormu. Yani kesme içinde kesme olmuyor gibi.

    //**********************************
    //**********************************
    //**********************************
    #include < Servo.h>
    Servo myservo;
    int pos = 0;
    //**********************************
    void setup() {
    myservo.attach(12);
    digitalWrite(3, HIGH);
    attachInterrupt(1, servo_kesmesi, FALLING);
    }
    //**********************************
    void loop() {
    pos = 0;
    myservo.write(pos);
    }
    void servo_kesmesi() {
    pos = 90;
    myservo.write(pos);
    delay(1000);
    }
    //**********************************
    //**********************************
    //**********************************

    Edit: Üstte #include kısmından sonra (Servo.h) var. nedense forum onu göstermiyor.
  • delay kodunu silebilir misiniz
  • delay komutu kesmede neden çalışmıyor?
  • delay yurutulen tum isleri durduruyor, hicbir islem belirtilen sure kadar calismiyor bu sekilde.

    delay'a alternatif millis fonksiyonu

    https://gelecegiyazanlar.turkcell.com.tr/konu/arduino/egitim/arduino-201/millis-fonksiyonu-nedir-ve-nerelerde-kullanilir
  • delayi sildikten sonra düzeldi değil mi ?
  • Servo kütüphanesi Timer kesmesi kullanarak işliyor sanırım. Bu durumda harici kesme rutini içinde timer kesme rutini çağrılmaya çalışılıyor. Arduino'da bir kesme rutini çalıştırıldığında diğer tüm kesmelerin disable edildiği aklımda kalmış. Dış kesmeye girdiğinde timer kesmesine izin için müdahale edebilir ve çalıştırabilirsin diye düşünüyorum.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook

Tagged

Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.