INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Verwendung ? : Arduino MEGA 2560 - Interrupt 3 und 2 (Pin 20 /21)
08.06.2015, 09:08
Beitrag #1
Verwendung ? : Arduino MEGA 2560 - Interrupt 3 und 2 (Pin 20 /21)
Hi Leute !

Laut Spezifikationen hat der Arduino MEGA 2560 6 EXTERNE Interrupts.
(an den Pins: 2, 3, 18, 19, 20, 21)

Wie kann ich die Interrupts an den Pins 20 und 21 nutzen.
Die von mir getesteten 18 und 19 funktionieren ohne Probleme.

Habe irgendwo gelesen dass dies ein Konflikt mit SCA und SCL sein soll.
Wie kann ich den MEGA in den "Interrupt-Modus" für diese Pins umschalten bzw. das Problem anderweitig lösen ?

Vielen Dank im voraus !

mfG

Zauche
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.06.2015, 16:03
Beitrag #2
RE: Verwendung ? : Arduino MEGA 2560 - Interrupt 3 und 2 (Pin 20 /21)
Alle Mods mal ausprobiert: LOW , CHANGE , RISING , FALLING ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.06.2015, 14:27
Beitrag #3
RE: Verwendung ? : Arduino MEGA 2560 - Interrupt 3 und 2 (Pin 20 /21)
danke erstmal für die Antwort. Smile

ja, hab alle MODI ausprobiert..... tut sich nichts !
Irgendwie muss man ja Pins freischalten können wenn laut ARDUINO homepage als EXT Interrupts verwendbar !?!?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.06.2015, 08:22
Beitrag #4
RE: Verwendung ? : Arduino MEGA 2560 - Interrupt 3 und 2 (Pin 20 /21)
Zitat:Alle Mods mal ausprobiert: LOW , CHANGE , RISING , FALLING ?
Dass externe Interrupts nur RISING / FALLING / LOW benutzen ist schon klar? Huh
CHANGE kann auch von anderen Pins abgefragt werden.
Wie sieht denn der Testcode aus? Kann ja sein, dass der zusätzlich I2C anspricht. Dann könnte es Probleme geben.
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.06.2015, 09:50
Beitrag #5
RE: Verwendung ? : Arduino MEGA 2560 - Interrupt 3 und 2 (Pin 20 /21)
Nein, I2C benutze ich garnicht. Hab nur 1 photo diode an A15 Einen Servo an Pin13 (PWM), 4x LEDs an Pins 11-14 (ohne PWM) und 2 Relais an Pins 5 und 6.
Die Interrupts (#5, #4)an 18 und 19 funktionieren ohne Probleme und wurden 1:1 für 20 und 21 kopiert. Nur die Pin-Nummern, Variablennamen und ISR-Namen wurden geändert. Daran kann es nicht liegen.
Hab irgendwo gelesen dass die Pins 20 und 21 wegen I2C standartmäßig per internem Pullup auf HIGH gezogen werden ?!? Eventuell das das Problem ? Kann ich den irgendwie im setup() deaktivieren ?

Vielen Dank im voraus.

lg
Zauche
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.06.2015, 10:42
Beitrag #6
RE: Verwendung ? : Arduino MEGA 2560 - Interrupt 3 und 2 (Pin 20 /21)
Zitat:Hab irgendwo gelesen dass die Pins 20 und 21 wegen I2C standartmäßig per internem Pullup auf HIGH gezogen werden ?!?
Ja ist richtig und die Ursache des Problems. Die standardmässig mitgelieferte Wire - Library ist verantwortlich dafür.
Lösung:
1. Im Setup (nachdem alle Instanzen mit .begin() gestartet wurden:
Code:
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega8__) || defined(__AVR_ATmega328P__)
    cbi(PORTC, 4);
    cbi(PORTC, 5);
  #else
    cbi(PORTD, 0);
    cbi(PORTD, 1);
  #endif
2. direkt in der mitgelieferten wire - Library in der Datei libraries/Wire/utility/twi.c folgende Zeilen auskommentieren
a) IDE - Version 023 und älter:
Code:
#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega8__) || defined(__AVR_ATmega328P__)
    // activate internal pull-ups for twi
    // as per note from atmega8 manual pg167
    sbi(PORTC, 4);
    sbi(PORTC, 5);
  #else
    // activate internal pull-ups for twi
    // as per note from atmega128 manual pg204
    sbi(PORTD, 0);
    sbi(PORTD, 1);
  #endif
b) IDE Version 1.0 und neuer:
Code:
// activate internal pullups for twi.
  digitalWrite(SDA, 1);
  digitalWrite(SCL, 1);
Hope it helps!

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.06.2015, 13:37
Beitrag #7
RE: Verwendung ? : Arduino MEGA 2560 - Interrupt 3 und 2 (Pin 20 /21)
Wow super - werd ich so bald wie möglich ausprobieren !
Meld mich dann wieder ☺
lg
Zauche
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.06.2015, 22:01
Beitrag #8
RE: Verwendung ? : Arduino MEGA 2560 - Interrupt 3 und 2 (Pin 20 /21)
@rkuehle:

Hab das jetzt so wie du geschrieben hast ausprobiert.
Leider hat es nicht funktioniert :/

Kann doch nicht sein, dass Pins 20+21 als Interrupt-tauglich angegeben werden und es nirgendwo eine sinnvolle Beschreibung gibt wie man diese nutzen kann bzw. die Interruptverwendung an diesen Ports so umständlich ist ?!?

lg

Zauche
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Einstieg Arduino Mega Markus0815 14 334 08.01.2017 13:40
Letzter Beitrag: Tommy56
  Arduino Mega startet immer wieder neu Badger1875 9 664 26.12.2016 17:56
Letzter Beitrag: Badger1875
  2 Mega 2560 R3 unterschiedliche Firmware? Gonmaus 2 204 11.12.2016 13:40
Letzter Beitrag: P.Martin
  while Schleife nach sleep mode interrupt tklaus 13 352 23.11.2016 17:40
Letzter Beitrag: Tommy56
  Datenübertragung vom Arduino Mega 2560 zu Hterm Datatom 1 142 13.11.2016 23:08
Letzter Beitrag: hotsystems
  Arduino Mega 2560 läuft nicht Wolfgang50 6 280 13.11.2016 10:50
Letzter Beitrag: Wolfgang50
  Arduino Mega 2560 Manfred1981 4 305 11.11.2016 18:07
Letzter Beitrag: hotsystems
  NRF24L01 Interrupt MeisterQ 22 677 02.11.2016 15:50
Letzter Beitrag: MeisterQ
  Attiny45 Bootloader brennen mit Funduino Mega toto1975 63 2.548 23.10.2016 17:08
Letzter Beitrag: hotsystems
  Interrupt matthias3579 5 266 15.10.2016 13:23
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste