summaryrefslogtreecommitdiff
path: root/src/modem.cc
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2016-01-15 20:27:22 +0100
committerDaniel Friesel <derf@finalrewind.org>2016-01-15 20:27:22 +0100
commit4c6cb2e5c4748502cbd26d3bd38e490ebead197f (patch)
tree4bf36680ef4fb9ee464d1a0699711f3f8bdc3e56 /src/modem.cc
parentfd6f265cbc7270bd69b4f8b68d7ec6c436e67d39 (diff)
turn modem voltage divider off during sleep
needs hw revision >= git commit 71f427bd100963b1aafb545bfca319c50e1c48cd
Diffstat (limited to 'src/modem.cc')
-rw-r--r--src/modem.cc14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/modem.cc b/src/modem.cc
index cb3a6ee..2eae685 100644
--- a/src/modem.cc
+++ b/src/modem.cc
@@ -28,7 +28,7 @@ uint8_t Modem::buffer_available() {
* Store 1 byte in ringbuffer
*/
static inline void modem_buffer_put(const uint8_t c) {
- if (modem.buffer_available() != MODEM_BUFFER_SIZE) {
+ if (modem.buffer_available() != MODEM_BUFFER_SIZE) {
modem_buffer[modem_buffer_head++ % MODEM_BUFFER_SIZE] = c;
}
}
@@ -83,7 +83,11 @@ ISR(PCINT3_vect) {
/*
* Start the modem by enabling Pin Change Interrupts & Timer
*/
-void Modem::init() {
+void Modem::enable() {
+ /* Enable R1 */
+ DDRA |= _BV(PA3);
+ PORTA |= _BV(PA3);
+
/* Modem pin as input */
MODEM_DDR &= ~_BV(MODEM_PIN);
@@ -94,3 +98,9 @@ void Modem::init() {
/* Timer: TCCR1: CS10 and CS11 bits: 8MHz clock with Prescaler 64 = 125kHz timer clock */
TCCR1B = _BV(CS11) | _BV(CS10);
}
+
+void Modem::disable()
+{
+ PORTA &= ~_BV(PA3);
+ DDRA &= ~_BV(PA3);
+}