Implement pump control via port register

This commit is contained in:
2025-05-15 23:30:48 +02:00
parent 3973d7b41d
commit c8c27d440c
2 changed files with 13 additions and 12 deletions
+5 -2
View File
@@ -3,8 +3,11 @@
#include <avr/sleep.h>
#include <avr/wdt.h>
#include <avr/interrupt.h>
#include "moisture.h"
#include "adc.h"
#include "moisture.h"
#include "pump.h"
ISR(WDT_vect) {
triggerRead();
@@ -27,8 +30,8 @@ void enterSleep(void) {
void setup(void) {
adcInit();
//pumpsInit();
sensorsInit();
//pumpsInit();
watchdogs();
}
+8 -10
View File
@@ -10,17 +10,15 @@ void pumpsInit(void) {
(1 << PUMP_D4) |
(1 << PUMP_D3) |
0 | 0 | 0 ));
// Disable pullup
PORTD &= ~((1 << PUMP_D7) |
(1 << PUMP_D6) |
(1 << PUMP_D5) |
(1 << PUMP_D4) |
(1 << PUMP_D3) |
0 | 0 | 0 ));
}
void triggerPump(int8_t pump_pin, int16_t milliseconds) {
// turn on pump
// watchdog for n milliseconds
// turn of pump
// Turn on pump
PORTD |= (1 << pump_pin);
// timer for n milliseconds
// NOTE: watchout for overflows!! create a safety net.
// Turn off pump
PORTD &= ~(1 << pump_pin);
}