matrix.c \ | matrix.c \ | ||||
led.c \ | led.c \ | ||||
backlight.c \ | backlight.c \ | ||||
ledmap.c | |||||
ledmap.c \ | |||||
vibration.c | |||||
ifdef KEYMAP | ifdef KEYMAP | ||||
SRC := keymap_$(KEYMAP).c $(SRC) | SRC := keymap_$(KEYMAP).c $(SRC) |
# project specific files | # project specific files | ||||
SRC = keymap_common.c \ | SRC = keymap_common.c \ | ||||
tentapad.c \ | |||||
matrix.c \ | matrix.c \ | ||||
led.c \ | led.c \ | ||||
backlight.c \ | backlight.c \ | ||||
ledmap.c | |||||
ledmap.c \ | |||||
vibration.c | |||||
ifdef KEYMAP | ifdef KEYMAP | ||||
SRC := keymap_$(KEYMAP).c $(SRC) | SRC := keymap_$(KEYMAP).c $(SRC) |
#ifdef PS2_MOUSE_ENABLE | #ifdef PS2_MOUSE_ENABLE | ||||
#include "ps2.h" | #include "ps2.h" | ||||
#endif | #endif | ||||
#include "vibration.h" | |||||
#include "keymap_common.h" | #include "keymap_common.h" | ||||
keymaps_cache_init(); | keymaps_cache_init(); | ||||
vibration_init(); | |||||
// initialize cols | // initialize cols | ||||
init_cols(); | init_cols(); | ||||
} | } | ||||
} | } | ||||
*/ | */ | ||||
vibration_task(); | |||||
return 1; | return 1; | ||||
} | } | ||||
#include "softpwm_led.h" | #include "softpwm_led.h" | ||||
#include "eeconfig.h" | #include "eeconfig.h" | ||||
#include "keymap_common.h" | #include "keymap_common.h" | ||||
#include "vibration.h" | |||||
#include "tentapad.h" | #include "tentapad.h" | ||||
#include "debug.h" | #include "debug.h" | ||||
break; | break; | ||||
case KEY_TT: | case KEY_TT: | ||||
if (event.pressed) { | if (event.pressed) { | ||||
vibration(64); | |||||
switch (backlight_mode) { | switch (backlight_mode) { | ||||
case 1: case 2: | case 1: case 2: | ||||
softpwm_led_increase(LED_KEY_SIDE - 1 + backlight_mode, 32); | softpwm_led_increase(LED_KEY_SIDE - 1 + backlight_mode, 32); |
/* | |||||
Copyright 2014 Kai Ryu <[email protected]> | |||||
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/>. | |||||
*/ | |||||
#include <avr/io.h> | |||||
#include "timer.h" | |||||
#include "vibration.h" | |||||
static uint8_t vibration_state = 0; | |||||
static uint16_t vibration_start; | |||||
static uint16_t vibration_duration; | |||||
void vibration_task(void) | |||||
{ | |||||
if (vibration_state) { | |||||
if (timer_elapsed(vibration_start) > vibration_duration) { | |||||
vibration_state = 0; | |||||
vibration_disable(); | |||||
} | |||||
} | |||||
} | |||||
void vibration_init(void) | |||||
{ | |||||
#ifndef EXPERIMENTAL | |||||
DDRD |= (1<<PD6); | |||||
PORTD &= ~(1<<PD6); | |||||
#else | |||||
DDRD |= (1<<PD5); | |||||
PORTD &= ~(1<<PD5); | |||||
#endif | |||||
} | |||||
void vibration_enable(void) | |||||
{ | |||||
#ifndef EXPERIMENTAL | |||||
PORTD |= (1<<PD6); | |||||
#else | |||||
PORTD |= (1<<PD5); | |||||
#endif | |||||
} | |||||
void vibration_disable(void) | |||||
{ | |||||
#ifndef EXPERIMENTAL | |||||
PORTD &= ~(1<<PD6); | |||||
#else | |||||
PORTD &= ~(1<<PD5); | |||||
#endif | |||||
} | |||||
void vibration(uint16_t duration) | |||||
{ | |||||
vibration_state = 1; | |||||
vibration_start = timer_read(); | |||||
vibration_duration = duration; | |||||
vibration_enable(); | |||||
} |
/* | |||||
Copyright 2014 Kai Ryu <[email protected]> | |||||
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/>. | |||||
*/ | |||||
#include <stdint.h> | |||||
void vibration_init(void); | |||||
void vibration_task(void); | |||||
void vibration_enable(void); | |||||
void vibration_disable(void); | |||||
void vibration(uint16_t duration); |