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
  Arduino MEGA + EthernetShield W5100 und weiteres SPI Device ? Stargazer 12 568 11.10.2017 19:03
Letzter Beitrag: Tommy56
  LED-Bilnker: Wechsel durch Interrupt djculture2001 10 527 04.10.2017 19:23
Letzter Beitrag: djculture2001
  Interrupt und I2C gibt das Probleme? Badger1875 5 275 03.10.2017 23:26
Letzter Beitrag: GuaAck
  Mega 2560 Visualisieren binderj1 11 523 01.10.2017 19:07
Letzter Beitrag: Tommy56
  Logger am Mega 2560 Wolfgang50 3 307 13.09.2017 10:53
Letzter Beitrag: Tommy56
  Problem mit externem Interrupt manfred474 13 1.040 13.08.2017 08:54
Letzter Beitrag: MicroBahner
  Taster an Interrupt - Prellen geschickter vermeiden als millis() zu prüfen? Flap 19 2.232 04.08.2017 08:10
Letzter Beitrag: Binary1
Wink Arduino TFT Display MEGA 2560 Samsuino 47 3.632 24.07.2017 12:45
Letzter Beitrag: Harry Hirsch
  Treiberprobleme Arduino Mega 2560 DonAthello 19 1.611 14.07.2017 10:14
Letzter Beitrag: SkobyMobil
  Firmata (Daten senden an den Arduino und empfangen vom Arduino) comfan 6 1.138 29.04.2017 14:29
Letzter Beitrag: hotsystems

Gehe zu:


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