Shop-Wechsel

Der Warenkorb wird nicht übernommen.

Zum Privatkunden Shop

Uhren

interrupt

Liebe ELVforum-Community, mit dem heutigen Tag informieren wir Sie darüber, dass dieses Forum demnächst eingestellt wird. Alle weiteren Informationen zu diesem Schritt und welche Alternative wir planen, entnehmen Sie bitte dem angepinnten Forumsbeitrag.
Beiträge zu diesem Thema: 2

ELV Bausatz I²C-Realtime-Clock I2C-RTC, ohne Buchsenleisten

Artikel-Nr.: 103413

zum Produkt
interrupt
Antwort als hilfreich markieren
0Positive Markierungen
Antwort als nicht hilfreich markieren
0Negative Markierungen
Melden Sie diesen Beitrag
30.12.2012, 20:35
Hallo,

die Uhr geht super.
Meine Frage, wo finde ich denn Beispielcode zum Thema interrupt Programmierung ?
Ich möchte den 1 Minuten- und 1 Stunden interrupt der RTC nutzen, aber wie ?
Das Beispiel was dabei ist, ist nicht wirklich selbsterklärend.
Über code Schnipsel oder einen Link würde ich mich freuen.
:D

THX
N.M.
Aw: interrupt
Antwort als hilfreich markieren
0Positive Markierungen
Antwort als nicht hilfreich markieren
0Negative Markierungen
Melden Sie diesen Beitrag
31.01.2013, 19:16
Hallo Normann_;-),

allgemeine Informationen zu Interrupts finden Sie unter:

http://arduino.cc/en/Reference/AttachInterrupt
und
http://www.mikrocontroller.net/articles/Interrupt

Für periodische Interrupts ist das Beispiel "periodicInterrupt" hilfreich, welches innerhalb der Library zum I2C-RTC zu finden ist. Über die Funktion "RTC.setPeriodicInterrupt" wird das Interrupt-Intervall festgelegt. Detailinformationen sind auch in der Datei "TwoWireRTC.cpp" innerhalb der Library zu finden. Für einen minütlichen Interrupt wäre der Paramter " PERIODIC_INTERRUPT_LEVEL_MODE_EVERY_MINUTE" einzusetzen, eine Rücksetzung erfolgt mit der Funktion "RTC.resetPeriodicInterrupt()".

Nachfolgend ein Beispiel-Code:

#include "Wire.h"
#include "TwoWireRTC.h"
#include "DateTime.h"

// Anzeige, ob eine Minute vergangen ist (wird durch den Interrupt des RTCs gesetzt)
volatile unsigned char newMinuteFlag = 0;
void newMinute(void)
{
newMinuteFlag = 1;
}
void setup()
{
// den Interrupt-Pin INTRA des RTC-Chips als externe Interruptquelle
// einstellen
pinMode(2, INPUT);
digitalWrite(2, HIGH);
attachInterrupt(0, newMinute, FALLING);
Wire.begin();
RTC.begin();
// den RTC auf einen periodischen Interrupt jede Minute einstellen
RTC.setPeriodicInterrupt(PERIODIC_INTERRUPT_LEVEL_MODE_EVERY_MINUTE);
}
void loop()
{
if(newMinuteFlag)
{
newMinuteFlag = 0;
// periodischen Interrupt wieder scharf schalten
RTC.resetPeriodicInterrupt();
// hier kommt hinein, was jede Minute passieren soll
}
}


Mit freundlichen Grüßen euer Team der technischen Kundenbetreuung