Interrupt mit Arduino Yun reagiert komisch

OP #5458035
Lesenswert?

Hallo,

ich habe folgenden Sketch auf einem Arduino UNO geladen und bekomme 
erfolgreich die richtigen Werte eines Sensors (Werte zwischen 300 und 
800).

Der gleiche Sketch auf dem Arduino YUN liefert komische Werte (zwischen 
1 und 3).

Vielleicht kann mir da jemand helfen?

Vielen Dank.

Grüße,

René.


Hier nun der Code:
1
// #########################################################
2
// ################ B I B L I O T H E K E N ################
3
// #########################################################
4

5
#include <Bridge.h>
6

7
// #########################################################
8
// ############### K O N F I G U R A T I O N ###############
9
// #########################################################
10

11

12
// ####################### Hardware ########################
13

14
int interruptPin = 2;
15

16
// ###################### Variablen ########################
17

18
volatile unsigned long pulse = 0;   // interrupt loop counter
19

20

21
// #########################################################
22
// ####################### S E T U P #######################
23
// #########################################################
24

25

26
void setup() {
27

28
   Bridge.begin();
29
   
30
   SerialUSB.begin(9600);
31
   Console.begin();
32
   while (!Console){
33
   // auf Konsole warten
34
   }
35
   Console.println("Konsole ist bereit zum Datentransfer!!!!");
36
   
37
   pinMode(interruptPin, INPUT);
38
   
39
// +++++++++ . ENDE VON SETUP  +++++++++
40
}
41

42
void loop() {
43

44
  Console.println("Beginne Messung...");
45
  
46
  pulse = 0;                                                              // Anzahl der Pulse auf 0 setzen
47
                                                                          // Interrupt aktivieren: Steigende Flanken
48
  attachInterrupt(digitalPinToInterrupt(interruptPin), zaehlen, RISING);
49
  delay(10);                                                              // 10 Millisekunden warten
50
  detachInterrupt(digitalPinToInterrupt(interruptPin));                   // Interrupt deaktivieren
51
  Console.print("Gemessene Pulse in 10 Millisekunden: ");
52
  Console.println(pulse);
53

54
  delay(1000);
55
  
56
}
57

58
void zaehlen()
59
{
60
  pulse++;
61
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren