Hallo I have a Problem with external Interrupts in my Program everytime a Interrupt occurs the Program is
freezing.
The RTC and the Interrupts alone run perfectly
Does anybody have an answer to this Problem?
Please Help I am Completely new to programming.
///////////The Code/////////////
#include <DS3231.h>
// Init the DS3231 using the hardware interface
DS3231 rtc(SDA, SCL);
#include <Time.h>
#include <Wire.h>
byte sensorPin = 2;
long pulseCount;
void setup()
{
Serial.begin(250000); // Setup Serial connection
rtc.begin();
pinMode(sensorPin, INPUT);
digitalWrite(sensorPin, HIGH);
attachInterrupt(2, pulseCounter, RISING);
}
void loop()
{
Serial.print("Uhr ");
printZiffernGenulltOhnePunkt(hour()); // rufen Subroutine auf
printZiffernGenulltmitPunkt(minute()); // rufen Subroutine auf
printZiffernGenulltmitPunkt(second()); // rufen Subroutine auf
Serial.println(); // fuegen Freizeichen und Uhr ein
Serial.print("Datum "); // fuegen Datum und Freizeichen ein
printZiffernGenulltOhnePunkt(day()); // rufen Subroutine auf
Serial.print("."); // fuegen Freizeichen ein
printZiffernGenulltOhnePunkt(month()); // rufen Subroutine auf
Serial.print("."); // fuegen Freizeichen ein
Serial.println(year()); // Zeilenvorschub
Serial.print("Tag der Woche ist: "); // fuegen Freizeichen ein
Serial.println(weekday()); // Zeilenvorschub
}
void printZiffernGenulltOhnePunkt(int zahl) // definieren Subroutine
{
// verschoenern Anzeige, indem wir ...
if(zahl < 10) // wenn kleiner als 10 ...
{
Serial.print(""); // fuehrende 0 einfuegen
}
Serial.print(zahl); // Ausgabe auf serieller Konsole
}
void printZiffernGenulltmitPunkt(int zahl) // definieren Subroutine
{
// verschoenern Anzeige, indem wir ...
Serial.print(":"); // trennende ":" einfuegen
if(zahl < 10) // wenn kleiner als 10 ...
{
Serial.print('0'); // fuehrende 0 einfuegen
}
Serial.print(zahl); // Ausgabe auf serieller Konsole
}
void pulseCounter()
{
Serial.print("pulseCount");
Serial.println(pulseCount++);
float verbrauch = pulseCount;
verbrauch = verbrauch / 5.043;
Serial.print("Verbrauch gesamt: "); Serial.print(verbrauch); Serial.println(" ml");
}
due_test.ino (1.92 KB)