summaryrefslogtreecommitdiff
path: root/table-fan/table-fan.c
diff options
context:
space:
mode:
Diffstat (limited to 'table-fan/table-fan.c')
-rw-r--r--table-fan/table-fan.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/table-fan/table-fan.c b/table-fan/table-fan.c
index 1f0cf4f..b59d7e9 100644
--- a/table-fan/table-fan.c
+++ b/table-fan/table-fan.c
@@ -31,12 +31,13 @@
#include "usbio.h"
#include "fan.h"
+#include "rotary.h"
void handle_cmd(uint8_t cmd)
{
switch(cmd) {
- case '+': fan_speed_inc();/* printf("pwm = %d\r\n", fan_speed_get()); */ break;
- case '-': fan_speed_dec();/* printf("pwm = %d\r\n", fan_speed_get()); */ break;
+ case '+': fan_speed_inc(); break;
+ case '-': fan_speed_dec(); break;
case 'r': reset2bootloader(); break;
}
printf("\rspeed: %5d rpm", fan_get_rpm());
@@ -53,13 +54,11 @@ int main(void)
led_init();
usbio_init();
fan_init();
+ rotary_init();
sei();
- // rotary encoder
- DDRB &= ~((1<<PB4) | (1<<PB5));
- PORTB |= (1<<PB4) | (1<<PB5);
-
- led_on();
+ led_off();
+ led2_off();
for(;;) {
int16_t BytesReceived = usbio_bytes_received();
while(BytesReceived > 0) {
@@ -70,6 +69,19 @@ int main(void)
BytesReceived--;
}
+ rotary_dir_t dir = rotary_task();
+ switch(dir) {
+ case rotary_dir_up: fan_speed_inc(); break;
+ case rotary_dir_down: fan_speed_dec(); break;
+ default: break;
+ }
+
+ if(fan_speed_get() > 0) {
+ led_on();
+ } else {
+ led_off();
+ }
+
usbio_task();
}
}