Forum: Mikrocontroller und Digitale Elektronik Interrupt mit Arduino Yun reagiert komisch


von René D. (motocamp)


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
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.