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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.