Shop-Wechsel

Der Warenkorb wird nicht übernommen.

Zum Privatkunden Shop

Uhren

interrupt

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