Koda: |
volatile uint32_t PulseCount = 0; uint32_t copyPulseCount; uint32_t lastDisplay = 0; int hall = 2; void processPulse() { PulseCount++; } void setup() { pinMode(hall, INPUT); digitalWrite(hall, HIGH); attachInterrupt(0, processPulse, RISING); sei(); Serial.begin(115200); } void loop () { if (millis() - lastDisplay >= 1000) { lastDisplay += 1000; cli(); copyPulseCount = PulseCount; sei(); Serial.print("Puls:\t"); Serial.println(copyPulseCount); float liters = copyPulseCount * 4.6E-4; // = * 0.00046 Serial.print("Liter:\t"); Serial.println(liters, 3); } } |
Koda: |
void loop() { miliZdaj = millis(); // centralni trenutni čas if (miliZdaj - miliPrej > 60000) // je minila 1 minuta? { // ja PulziVminuti[indexMinut] = pravkarPresteto; pravkarPresteto = 0; // šteje nove impulze if(indexMinut < 59) indexMinut++; else indexMinut = 0; // pripravi za naslednji vpis miliPrej = miliZdaj; // pripravi za novo minuto for (i = 0; i < 60; i++) { PulziVUri = PulziVUri + PulziVminuti[i]; } Pretok = PulziVUri / 130440; Izpis ... } // vsako minuto }// void loop() |