diff options
| author | Sadeep Madurange <sadeep@asciimx.com> | 2025-09-07 17:04:34 +0800 |
|---|---|---|
| committer | Sadeep Madurange <sadeep@asciimx.com> | 2025-09-07 17:04:34 +0800 |
| commit | 276856de6c63bbbf3e56cc08dcca00ba10080b7e (patch) | |
| tree | c68484bc312cc3a8abcea4fa9f4948a6f1f65cc6 /lock/util.c | |
| parent | f4b0b734a595919cf451ab9448b06274c8e609a4 (diff) | |
| download | smart-home-master.tar.gz | |
Diffstat (limited to 'lock/util.c')
| -rw-r--r-- | lock/util.c | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/lock/util.c b/lock/util.c deleted file mode 100644 index ec5369e..0000000 --- a/lock/util.c +++ /dev/null @@ -1,89 +0,0 @@ -#include <avr/io.h> -#include <avr/interrupt.h> -#include <util/delay.h> - -#include "util.h" - -#define LOCK_LED PC3 -#define UNLOCK_LED PC4 -#define BATLOW_LED PC5 -#define LED_DDR DDRC -#define LED_PORT PORTC - -int is_btn_pressed(uint8_t pin, uint8_t btn) -{ - if (!((pin >> btn) & 0x01)) { - _delay_ms(100); - return !((pin >> btn) & 0x01); - } - return 0; -} - -void xor(const char *k, const char *s, char *d, uint8_t n) -{ - int i; - - for (i = 0; i < n; i++) - d[i] = s[i] ^ k[i]; -} - -/* Measure vcc by measuring known internal 1.1v bandgap - * reference voltage against AVCC. - * Place a 100nF bypass capacitor on AREF. - */ -uint16_t getvcc(void) -{ - uint16_t vcc; - - ADMUX |= (1 << REFS0); - ADMUX |= (1 << MUX3) | (1 << MUX2) | (1 << MUX1); - ADCSRA |= (1 << ADEN) | (1 << ADPS2) | (1 << ADPS0); - - // https://www.sciencetronics.com/greenphotons/?p=1521 - _delay_us(500); - - ADCSRA |= (1 << ADSC); - while (ADCSRA & (1 << ADSC)) - ; - vcc = (1100UL * 1023 / ADC); - - ADCSRA &= ~(1 << ADEN); - return vcc; -} - -void led_init(void) -{ - LED_DDR |= (1 << LOCK_LED) | (1 << UNLOCK_LED); - LED_DDR |= (1 << BATLOW_LED); - - LED_PORT &= ~(1 << LOCK_LED); - LED_PORT &= ~(1 << UNLOCK_LED); - LED_PORT &= ~(1 << BATLOW_LED); -} - -void led_locked(void) -{ - LED_PORT |= (1 << LOCK_LED); - _delay_ms(100); - LED_PORT &= ~(1 << LOCK_LED); - _delay_ms(100); - LED_PORT |= (1 << LOCK_LED); - _delay_ms(100); - LED_PORT &= ~(1 << LOCK_LED); -} - -void led_unlocked(void) -{ - LED_PORT |= (1 << UNLOCK_LED); - _delay_ms(70); - LED_PORT &= ~(1 << UNLOCK_LED); - _delay_ms(70); - LED_PORT |= (1 << UNLOCK_LED); - _delay_ms(70); - LED_PORT &= ~(1 << UNLOCK_LED); -} - -void led_bat(void) -{ - LED_PORT ^= (1 << BATLOW_LED); -} |
