Arduino Forum

International => Deutsch => Topic started by: Mahimus on Feb 09, 2019, 01:04 am

Title: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Mahimus on Feb 09, 2019, 01:04 am
Hallo,

Ich habe ein seltsames Problem wenn ich meinen digitalen Drehzahlsensor mit Interrupt auslesen möchte. Und zwar passiert das gleiche, wenn ich beim Einrichten des Interrupt eine fallende oder eine sich ändernde Flanke als Trigger verwenden möchte. In beiden Fällen wird die ISR bei einem Wechsel von HIGH zu LOW oder umgekehrt ausgeführt. Glaubt mir jetzt sicher keiner, ist aber so. Hab deshalb eine ewige Fehlersuche hinter mir da die Werte nie gestimmt haben. Vielleicht kann mir jemand sagen warum das so sein könnte oder jemand zeigt mir meinen Denkfehler auf.

Hier der Code und unten angefügt ein Plot davon, was der Sensor so ausgibt. Der tut tatsächlich was er soll und fällt mMn als Fehlerquelle raus.

Code: [Select]


volatile byte Flanken_L = 0;  
volatile byte Flanken_R = 0;  
volatile unsigned long t4_interrupt;
volatile unsigned long t5_interrupt;

void setup() {

  attachInterrupt(digitalPinToInterrupt(2), count_Flanken_R , CHANGE);  //rechter Raddrehzahlsensor
  attachInterrupt(digitalPinToInterrupt(3), count_Flanken_L , CHANGE);  //linker Raddrehzahlsensor


  Serial.begin(9600);
  
}

void loop() {

  Serial.println(Flanken_L);

}

void count_Flanken_R(){
  if(millis()-t4_interrupt>5){
   Flanken_R++;
   }
   t4_interrupt = millis();
}

void count_Flanken_L(){
  if(millis()-t5_interrupt>5){
   Flanken_L++;
   }
   t5_interrupt = millis();
}




Title: Re: Interrupt - FALLING verhält sich wie CHANGE
Post by: Whandall on Feb 09, 2019, 01:36 am
Code: [Select]
  attachInterrupt(digitalPinToInterrupt(2), count_Flanken_R , CHANGE);  //rechter Raddrehzahlsensor
  attachInterrupt(digitalPinToInterrupt(3), count_Flanken_L , CHANGE);  //linker Raddrehzahlsensor


Der Kode soll ja auch bei CHANGE triggern, macht also genau was er soll.
Title: Re: Interrupt - FALLING verhält sich wie CHANGE
Post by: DrDiettrich on Feb 09, 2019, 01:42 am
Wozu soll die seltsame Bremse mit millis() dienen?

Ein glaubhafter Test wäre das selbe Signal auf beiden Pins, und ein Interrupt mit CHANGE und der andere mit RISING oder FALLING, und dann die Ausgabe beider Zähler alle Sekunde oder so.
Title: Re: Interrupt - FALLING verhält sich wie CHANGE
Post by: Rentner on Feb 09, 2019, 11:45 am
Hallo,

wie hoch sind denn die Frequenzen die Du messen willst. Die Bremse mit den 5 ms / halber Periode  soll ja entprellen. damit kannst du also nur alle 5ms  eine Flanke erkennen. Wenn jetzt beide Flanken erkannt werden sollen "Change" kann das dazu führen das die 5 ms noch nicht abgelaufen sind, damit wird dann nur wieder jede zweite gezählt was identisch mit falling oder rising wäre.

5ms *2 =10ms je Periode -> 100Hz ist nicht viel

Heinz
Title: Re: Interrupt - FALLING verhält sich wie CHANGE
Post by: postmaster-ino on Feb 09, 2019, 11:57 am
Hi

Wieso der Plot (kann Das die IDE selber?) per analogRead, wenn DU im späteren Programm auf die Flanke, also DIGITAL, reagieren willst?

Nichts desto Trotz, bei CHANGE wird bei jeder Flanke gewechselt.
Sofern Dein Sensor kein Mechanischer ist, kannst Du Dir die millis()-Bremse sparen, elektronische Sensoren prellen nicht (wäre mir zumindest noch Keiner untergekommen).

Die Idee von Whandall klingt zielführend!
Setze einen Interrupt auf CHANGE, den Anderen auf RISING/FALLING und lasse Dir in der loop() alle Sekunde die Zählerstände ausgeben.

Dafür wird aber wohl BYTE als Typ für die Zähler zu Klein sein, oder hast Du nur 255 (127) Impulse pro Sekunde?
... also ohne die Bremse - mit, wie gerade auch gepostet wurde, sind's maximal 100 Erkennungen/Sekunde.

MfG
Title: Re: Interrupt - FALLING verhält sich wie CHANGE
Post by: DrDiettrich on Feb 09, 2019, 12:48 pm
Die Idee von Whandall klingt zielführend!
Setze einen Interrupt auf CHANGE, den Anderen auf RISING/FALLING und lasse Dir in der loop() alle Sekunde die Zählerstände ausgeben.
Grummel! Wer klaut da meine Lorbeeren?
Title: Re: Interrupt - FALLING verhält sich wie CHANGE
Post by: Mahimus on Feb 09, 2019, 01:25 pm
100Hz ist die absolute höchste Frequenz die auftritt. Der Sensor prellt manchmal. Ich habe natürlich beides, FALLING und CHANGE, ausprobiert. Jedes mal zählt das Programm bei einer Radumdrehung genau 40 Flanken. Die Lochscheibe hat 20 Löcher. Mehrfach ausprobiert.

Ich habe den Sensor mal analog ausgelesen, weil ich genau wissen wollte was der so ausspuckt. Dann hab ich ihn natürlich wieder an den digitalen Pin gehängt bevor jetzt einer fragt.
Title: Re: Interrupt - FALLING verhält sich wie CHANGE
Post by: Rentner on Feb 09, 2019, 01:47 pm
Hallo,

analog ?? wozu sollte das sein, wolltest Du die Kurvenform sehen .

Hast Du mal an den IR Registen rumgespielt ?

Muss jetzt noch mal fragen ,
was ist das für ein Sensor
wie hast du den Sensor angeschlossen
wie hast Du den Pin mit pinMode eingestellt.

schreib mal einen ganz normalen Sketch und finde raus ob die Pegel richtig erkannt werden.

Heinz



Title: Re: Interrupt - FALLING verhält sich wie CHANGE
Post by: Mahimus on Feb 09, 2019, 02:05 pm
Hallo,

analog ?? wozu sollte das sein, wolltest Du die Kurvenform sehen .

Hast Du mal an den IR Registen rumgespielt ?

Muss jetzt noch mal fragen ,
was ist das für ein Sensor

wie hast du den Sensor angeschlossen

wie hast Du den Pin mit pinMode eingestellt.

schreib mal einen ganz normalen Sketch und finde raus ob die Pegel richtig erkannt werden.

Ja, wollte genaus sehen was der ausgibt, also die Kurvenform. Sieht gut aus, Sensor funktioniert also. Das war Teil der Fehlersuche.

Es ist dieser Sensor: https://www.ebay.de/itm/Dual-Drehzahlsensor-Counting-Modul-fur-Odometrie-Drehzahlmessung-Arduino-Raspb/201448285399?hash=item2ee740e4d7:g:0NoAAOSwumFbfpQ6:rk:1:pf:1

Ich habe ihn richtig angeschlossen. Irgendwie weiß ich nicht was ich da anderes sagen soll, er funktioniert wunderbar, was soll ich da jetzt zum dritten mal die Verkabelung prüfen.

Ich hab wie du oben im Code siehst keinen PinMode Befehl gegeben, daher sind sie ganz normal auf Input eingestellt.

Hab ich schon geprüft. Hier ist mal ein Code der auch funktioniert und pro Radumdrehung 20 Flanken zählt, also das was ich erwarten würde von Interrupt mit Falling:

Code: [Select]

 bool Status_R = digitalRead(2); 
     if(letzterStatus_R == LOW && Status_R == HIGH){
         Flanken_R++;
         }
       letzterStatus_R = Status_R;
       Radumdrehungen_R = Flanken_R/20.0;
       
     bool Status_L = digitalRead(3); 
     if (letzterStatus_L == LOW && Status_L == HIGH){
          Flanken_L++;
          }
       letzterStatus_L = Status_L;
       Radumdrehungen_L = Flanken_L/20.0;

Title: Re: Interrupt - FALLING verhält sich wie CHANGE
Post by: Whandall on Feb 09, 2019, 04:59 pm
CHANGE und FALLING funktionieren genau wie erwartet und dokumentiert (auf einem Mega),
also  Interrupt - FALLING verhält sich wie CHANGE:

Code: [Select]
const byte pinD2 = 2;
const byte pinD3 = 3;

uint16_t toggle2;
uint16_t toggle3;

volatile uint16_t countISR2;
volatile uint16_t countISR3;

void isr2() {
  countISR2++;
}
void isr3() {
  countISR3++;
}
void setup() {
  Serial.begin(250000);
  pinMode(pinD2, OUTPUT);
  pinMode(pinD3, OUTPUT);
  attachInterrupt(digitalPinToInterrupt(pinD2), isr2, FALLING);
  attachInterrupt(digitalPinToInterrupt(pinD3), isr3, CHANGE);
}

void loop() {
  static uint32_t lastSecond;
  static uint32_t lastToggle2;
  static uint32_t lastToggle3;
  uint32_t topLoop = millis();
  if (topLoop - lastSecond >= 1000) {
    lastSecond = topLoop;
    noInterrupts();
    uint32_t copy2 = countISR2;
    uint32_t copy3 = countISR3;
    countISR2 = 0;
    countISR3 = 0;
    interrupts();
    Serial.print(F("D2: toggled "));
    Serial.print(toggle2);
    Serial.print(F(" counted "));
    Serial.print(copy2);
    Serial.print(F(", D3: toggled "));
    Serial.print(toggle3);
    Serial.print(F(" counted "));
    Serial.println(copy3);
    toggle2 = 0;
    toggle3 = 0;
  }
  if (topLoop - lastToggle2 >= 7) {
    toggle2++;
    digitalWrite(pinD2, !digitalRead(pinD2));
    lastToggle2 += 7;
  }
  if (topLoop - lastToggle3 >= 5) {
    toggle3++;
    digitalWrite(pinD3, !digitalRead(pinD3));
    lastToggle3 += 5;
  }
}

Code: [Select]
D2: toggled 142 counted 71, D3: toggled 199 counted 199
D2: toggled 143 counted 71, D3: toggled 200 counted 200
D2: toggled 143 counted 72, D3: toggled 200 counted 200
D2: toggled 143 counted 71, D3: toggled 200 counted 200
D2: toggled 143 counted 72, D3: toggled 200 counted 200
D2: toggled 143 counted 71, D3: toggled 200 counted 200
D2: toggled 142 counted 71, D3: toggled 200 counted 200
D2: toggled 143 counted 72, D3: toggled 200 counted 200
D2: toggled 143 counted 71, D3: toggled 200 counted 200
D2: toggled 143 counted 72, D3: toggled 200 counted 200
D2: toggled 143 counted 71, D3: toggled 200 counted 200
D2: toggled 143 counted 72, D3: toggled 200 counted 200
D2: toggled 143 counted 71, D3: toggled 200 counted 200
Title: Re: Interrupt - FALLING verhält sich wie CHANGE
Post by: Mahimus on Feb 09, 2019, 05:35 pm
Danke für die Mühe, aber hilft mir jetzt nicht wirklich weiter. Wenn jemand meinen Code auf einem Uno ausprobiert und etwas anderes beobachtet als ich es tue wäre das aussagekräftiger. Ich glaub nämlich eigentlich auch nicht so ganz, dass die "Modi" prinzipiell nicht funktionieren. Dann wäre ja viel früher einer drauf gestoßen. Aber das was du so selbstsicher durchstreichst ist eben das, was ich bei mir beobachte.
Title: Re: Interrupt - FALLING verhält sich wie CHANGE
Post by: Whandall on Feb 09, 2019, 05:40 pm
Benutze alle Mechanismen meines Sketches und deine Symptome verschwinden.
Oder es wird von der Hardware verursacht, was man aber ziemlich auschließen kann.

"Interrupt - FALLING verhält sich wie CHANGE" ist einfach falsch.

Uno hattest du noch nicht erwähnt, spielt aber für diese beiden externen Interrupts auch keine Rolle.

P.S.: Deine 6 ms Debounce-Zeit ist auf alle Fälle viel zu lang für ein 100 Hz Signal (20%);

Title: Re: Interrupt - FALLING verhält sich wie CHANGE
Post by: postmaster-ino on Feb 09, 2019, 06:43 pm
Hi

Da es sich bei dem Sensor - wie erwartet - um eine Elektronik handelt, prellt Da Nichts.
Wenn Du wider Erwarten dort Mehrfach-Signale bekommst, dann erkennen die Lichtschranke Mehrfach!
Denke, Du hast Fusseln oder so Was auf der Schlitzscheibe.
Alternativ wäre eine wesentlich kürzere Entprellzeit ein Versuch wert - der Sensor selber prellt nicht!

MfG
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Doc_Arduino on Feb 09, 2019, 07:06 pm
Hallo,

mach folgenden Test. Nimm einen ausgeleierten Taster. In dem Fall hier soll er prellen. Den schließt du an beide Interrupt Pins an. Einen mit change und den anderen mit falling (oder rising) konfiguriert. Jetzt muss der falling/rising konfigurierte stets den halben Zählerstand zeigen als der change.
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Doc_Arduino on Feb 09, 2019, 08:04 pm
Hallo,

@ Whandall:  #9  pinD2 und pinD3 sind sicherlich keine Ausgänge. ;)
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Doc_Arduino on Feb 09, 2019, 08:11 pm
Hallo,

habs mal nachgestellt. Funktioniert fast wie erwartet. Nur das die Counter zueinander mit der Zeit wegdriften. Hängt damit zusammen das zwar beide zeitgleich ihr Signal sehen, aber beide ISRs nur nacheinander abgearbeitet werden. Mit millis Ausgabeintervall wirds nur schlimmer, mit harten delay weniger schlimm. Man erkennt aber das die Werte zueinander fast immer ca. ungefähr nahezu halbiert ist.

Code: [Select]

// https://forum.arduino.cc/index.php?topic=596606.0
// Arduino Mega2560

volatile int Flanken_L;  
volatile int Flanken_R;  

void setup() {
  Serial.begin(250000);
  
  attachInterrupt(digitalPinToInterrupt(18), count_Flanken_R , CHANGE);   // rechter Raddrehzahlsensor
  attachInterrupt(digitalPinToInterrupt(19), count_Flanken_L , FALLING);   // linker Raddrehzahlsensor

  pinMode(18, INPUT_PULLUP);
  pinMode(19, INPUT_PULLUP);
}

void loop() {

  delay(5000);

  Werte();

}

void Ausgabe (unsigned int interval)              // hat noch stärken Drift          
{
  static unsigned long last_ms = 0;
  
  unsigned long ms = millis();
  
  if (ms - last_ms >= interval) {
    last_ms = ms;
    noInterrupts();
    int tempL = Flanken_L;
    int tempR = Flanken_R;
    interrupts();
    Serial.print(tempL);
    Serial.print('\t');
    Serial.println(tempR);
  }
}


void Werte ()                        
{
    noInterrupts();
    int tempL = Flanken_L;
    int tempR = Flanken_R;
    interrupts();
    Serial.print(tempL);
    Serial.print('\t');
    Serial.println(tempR);
}

void count_Flanken_R(){
   Flanken_R++;
}

void count_Flanken_L(){
   Flanken_L++;
}


Werte
Code: [Select]

2    3
55    96
83    143
108    192
136    246
156    286
177    327
222    409
240    442
251    459
277    498
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Whandall on Feb 09, 2019, 08:24 pm
Hallo,

@ Whandall:  #9  pinD2 und pinD3 sind sicherlich keine Ausgänge. ;)
Oh doch, und zwar mit voller Absicht.

Damit kann ich aus dem Programm die Pins umschalten ohne Hardware zu benutzen,
die Interruptlogik interessiert nicht wo das Signal herkommt.
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Doc_Arduino on Feb 10, 2019, 03:34 pm
Hallo,

daran hatte ich ehrlich gesagt nicht gedacht das man das so machen kann, vorallendingen mit Interrupts.

Habe mir nochmal "General Digital I/O" angeschaut. Tatsache, alle Port-Register hängen am I/O Pin. Das erklärt auch warum man die Ausgangspegel wiederum einlesen kann. Das nutzt du hier mit den Interrupts aus. Okay.   :D
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Whandall on Feb 10, 2019, 04:01 pm
@Mahimus ich habe mir noch einmal deine Lichtschranken angeschaut, die sollten völlig prellfrei sein.

Lass mal das Debouncen ganz weg und schau wie es dann aussieht.
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Mahimus on Feb 11, 2019, 02:04 pm
@Mahimus ich habe mir noch einmal deine Lichtschranken angeschaut, die sollten völlig prellfrei sein.

Lass mal das Debouncen ganz weg und schau wie es dann aussieht.
Doch, er "prellt", gerade wenn er langsam dreht. Der Mechanismus ist sicher ein anderer als beim Taster, aber beim Übergang von High zu Low oder umgekehrt, vermutlich wenn die Lichtschranke teilweise verdeckt ist, gibt er manchmal sowas aus:  "...0000101011111..."
Der Zustand ist dann denk ich nicht exakt definiert, bzw genau an der Grenze von "ich les das als offene Lichtschranke" oder "geschlossen". Dann kommt noch ein allgemeines Rauschen dazu und voila: Prellen.

Weiterhin habe ich den Versuch auch schon ohne Entprellen laufen lassen, gleiche Symptomatik wie in der Threadbeschreibung genannt.
Als Korrektur zu dem oben geschriebenen: Die höchste zu erwartende Frequenz sind 50Hz, das wären mit "Change" 100 ISR Ausführungen pro Sek, meine Entprellung lässt ~200 Ausführungen pro Sek zu. Alles gut. getestet hab ich bisher mit noch viel weniger Drehzahl (= geringere Abzutastende Frequenz).



@Doc_Arduino:  Danke für die Mühe. Irgendwie muss es wohl doch mein Fehler sein, aber ich komm nicht drauf. Ist echt komisch. Für das aktuelle Projekt ist es allerdings auch recht egal, ich nutze jetzt "Change" und weiß eben, dass das Rad nach 40 Interrupts eine Umdrehung gemacht hat.
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Whandall on Feb 11, 2019, 02:14 pm
Hast du mal versucht, die Trimmpotis zu verstellen?

Ich denke dass die den Threshold beeinflussen.
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Mahimus on Feb 11, 2019, 03:02 pm
Hast du mal versucht, die Trimmpotis zu verstellen?

Ich denke dass die den Threshold beeinflussen.
Ja, habe ich eingestellt. Wie hoch der Threshold liegt ändert aber nichts an der Tatsache, dass ich ihn durchfahren muss.
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Whandall on Feb 11, 2019, 03:05 pm
Fremde Beleuchtung können die Schranken nicht abbekommen?
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Mahimus on Feb 11, 2019, 03:17 pm
Fremde Beleuchtung können die Schranken nicht abbekommen?
Doch. Aber ein HIGH bleibt zumindest immer HIGH und ein LOW immer LOW. Die Fremdbeleuchtung allein hat also keinen so großen Einfluss, dass sie alleine einen fälschlichen Wechsel des Wertes auslöst. Nur beim gewollten Wechsel (Rad dreht sich) gibt es das "Prell"-Problem, aber dieses Problem ist ja gelöst.

Um die Hardware genauer zu beschreiben: Die Lichtschranke ist am Unterboden von einem kleinen Roboter, also kommt direkte Lichteinstrahlung nicht hin. Da ich keinen Anlass sehe das weiter abzuschirmen hab ich da bisher kein lichtdichtes Gehäuse für die Lichtschranken gebaut.
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Whandall on Feb 11, 2019, 03:21 pm
Du könntest ja mal im Dunkeln testen, dann könntest du auch das Fremdlicht ausschließen.
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Mahimus on Feb 11, 2019, 03:37 pm
Du könntest ja mal im Dunkeln testen, dann könntest du auch das Fremdlicht ausschließen.
Ich habe ja den Sensor bei den üblichen Lichtbedingungen analog Ausgelesen und da bekomm ich ne superhübsche Rechteckfunktion ohne nennenswerte Störung/Rauschen.
Weiterhin verhält er sich ja bei "Change" als Interruptauslöser und mit Entprellung so wie er soll. Da schaltet er also nicht fälschlicherweise. Licht war da auch an. Das Licht ist demnach schonmal nicht der Übeltäter.
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Whandall on Feb 11, 2019, 03:39 pm
Wenn du es sagst, aber du meintest auch schon CHANGE sei wie FALLING.  ;)

Mit "im Dunkeln" meinte ich ohne künstliche Beleuchtung.
Bei Tageslicht würde ich keine (Prell-)Störungen erwarten.
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Mahimus on Feb 11, 2019, 04:12 pm
Wenn du es sagst, aber du meintest auch schon CHANGE sei wie FALLING.  ;)
Ich dachte mir schon, dass es keiner glaubt. Wenn ichs objektiv betrachte glaube ich auch, ich würde an eurer Stelle denken der TE hat den Sketch nicht hochgeladen oder sowas dämliches. Vielleicht probier ichs später nochmal aus und mach ein Video, wenn ich es wieder reproduzieren kann. Da es aber eher ein theoretisches Problem ist als ein praktisches widme ich mich eigentlich lieber den verbliebenen praktischen Problemen des Projekts.
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Whandall on Feb 11, 2019, 04:24 pm
Ich dachte mir schon, dass es keiner glaubt. Wenn ichs objektiv betrachte glaube ich auch, ich würde an Da es aber eher ein theoretisches Problem ist als ein praktisches widme ich mich eigentlich lieber den verbliebenen praktischen Problemen des Projekts.
Na ja, ich finde du solltest schon genau feststellen woran der beschriebene Effekt liegt.
Wenn du das nicht tust, rächt sich das mit ziemlicher Sicherheit.

Dass es nicht an CHANGE/FALLING liegt habe ich doch mit meinem Sketch bewiesen.
Dein Sensor sollte nicht prellen, da werden OpAmps benutzt, die hoffentlich als Schmitt-Trigger (https://de.wikipedia.org/wiki/Schmitt-Trigger) beschaltet sind.

Deine analoges Messung zeigt dir vielleicht nicht die wirklichen Vorgänge, weil sie zu langsam abtastet.
Hast du ein Ozilloskop, oder so einen günstigen Logicanalyzer zur Verfügung?
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: postmaster-ino on Feb 11, 2019, 08:32 pm
Hi

Wie Dem  jetzt auch sei - finde ich die Herangehensweise des TO aber durchaus nett :).
50Hz werden erwartet, der ISR-Endpreller lässt 100Hz zu, durch das CHANGE wird die Lichtschranke 'irgendwann' wohl auch Mal mit Prellen fertig und im jetzigen Zustand verharren - eigentlich keine so dumme Lösung, wenn ich gefragt würde.

Denke immer noch, daß die Schlitzscheibe das Problem ist, da Diese unzureichend genau oder eben nur 'zu' schmutzig ist - das 'zu' besagt hierbei nicht, daß Da der Siff runter tropft, sondern, daß da eben ZU viel Schmutz dran ist - kann auch ganz wenig sein, aber eben zu viel.
(ist wie die Vorsilbe VER ... verlieren, verheiraten ... ups)

MfG
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Mahimus on Feb 12, 2019, 11:07 pm
Wie Dem  jetzt auch sei - finde ich die Herangehensweise des TO aber durchaus nett :).

Danke, funktioniert ja wie gesagt auch. Zumindest wenn man weiß, dass nur CHANGE ordentlich funktioniert.


Denke immer noch, daß die Schlitzscheibe das Problem ist, da Diese unzureichend genau oder eben nur 'zu' schmutzig ist...

Ist plausibel, habe ich aber aus zwei Gründen nicht weiter verfolgt. Erstens ist es doch unwahrscheinlich, dass je 20 Schlitze an zwei Scheiben auf ähnliche Art verschmutzt sind. Zweitens, wenn du doch rechts hast, und das bisschen Schmutz stört, dann muss das System halt auch mit einer gewissen Verschmutzung leben können. Das ist mein Anspruch der sich aus den Anforderungen ans System ergibt.
Und mit Change und Entprellen gehts.


@Whandall: Ein Prellen, woher auch immer es kommt, ist die einzige Erklärung.
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Whandall on Feb 12, 2019, 11:09 pm
Danke, funktioniert ja wie gesagt auch. Zumindest wenn man weiß, dass nur CHANGE ordentlich funktioniert.
Höre auf diesen Quatsch zu verbreiten.

Dass du damit nicht klarkommst, heisst nicht dass es nicht funktioniert wie dokumentiert,
was ich dir in diesem Thread schon bewiesen habe.
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Mahimus on Feb 12, 2019, 11:35 pm
Ich meine an dieser Stelle, dass es in diesem Kontext, also mit dem Sensor, nur so funktioniert.
Title: Re: Interrupt - FALLING verhält sich wie CHANGE?!
Post by: Whandall on Feb 12, 2019, 11:46 pm
Liest sich für mich anders, aber ist ja jetzt richtiggestellt.