diff options
Diffstat (limited to 'keyclick.h')
-rw-r--r-- | keyclick.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/keyclick.h b/keyclick.h new file mode 100644 index 0000000..f964230 --- /dev/null +++ b/keyclick.h @@ -0,0 +1,47 @@ +/* +Copyright 2021 Robin Haberkorn <robin.haberkorn@googlemail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef KEYCLICK_H +#define KEYCLICK_H + +#include <stdbool.h> + +#include <avr/io.h> + +enum keyclick_mode { + KEYCLICK_OFF = 0, + KEYCLICK_SOLENOID, + KEYCLICK_BUZZER, + /** not a real keyclick mode */ + KEYCLICK_MAX +}; + +extern enum keyclick_mode keyclick_mode; + +static inline void +keyclick_solenoid_set(bool state) +{ + /* + * NOTE: The solenoid/relay is LOW-active. + */ + if (state) + PORTB &= ~(1 << PB3); + else + PORTB |= (1 << PB3); +} + +#endif |