try out b6 and b7 audio
This commit is contained in:
parent
6b2a3492b7
commit
5cc7df8750
2 changed files with 144 additions and 100 deletions
|
@ -1,90 +1,90 @@
|
||||||
/*
|
/*
|
||||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CONFIG_H
|
#ifndef CONFIG_H
|
||||||
#define CONFIG_H
|
#define CONFIG_H
|
||||||
|
|
||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0xFEED
|
#define VENDOR_ID 0xFEED
|
||||||
#define PRODUCT_ID 0x3060
|
#define PRODUCT_ID 0x3060
|
||||||
#define DEVICE_VER 0x0001
|
#define DEVICE_VER 0x0001
|
||||||
#define MANUFACTURER xyxjj
|
#define MANUFACTURER xyxjj
|
||||||
#define PRODUCT DeltaSplit75
|
#define PRODUCT DeltaSplit75
|
||||||
#define DESCRIPTION 75% split keyboard
|
#define DESCRIPTION 75% split keyboard
|
||||||
|
|
||||||
/* key matrix size */
|
/* key matrix size */
|
||||||
// Rows are doubled-up
|
// Rows are doubled-up
|
||||||
#define MATRIX_ROWS 14
|
#define MATRIX_ROWS 14
|
||||||
#define MATRIX_COLS 8
|
#define MATRIX_COLS 8
|
||||||
|
|
||||||
// wiring of each half
|
// wiring of each half
|
||||||
#define MATRIX_ROW_PINS { F4, F5, F6, F7, B1, B3, B2 }
|
#define MATRIX_ROW_PINS { F4, F5, F6, F7, B1, B3, B2 }
|
||||||
#define MATRIX_COL_PINS { B6, B5, B4, E6, D7, C6, D4, D1}
|
#define MATRIX_COL_PINS { B6, B5, B4, E6, D7, C6, D4, D1}
|
||||||
|
|
||||||
#define CATERINA_BOOTLOADER
|
#define CATERINA_BOOTLOADER
|
||||||
|
|
||||||
/* COL2ROW or ROW2COL */
|
/* COL2ROW or ROW2COL */
|
||||||
#define DIODE_DIRECTION COL2ROW
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
/* define if matrix has ghost */
|
/* define if matrix has ghost */
|
||||||
//#define MATRIX_HAS_GHOST
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
/* number of backlight levels */
|
/* number of backlight levels */
|
||||||
// #define BACKLIGHT_LEVELS 3
|
// #define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
/* Set 0 if debouncing isn't needed */
|
/* Set 0 if debouncing isn't needed */
|
||||||
#define DEBOUNCING_DELAY 5
|
#define DEBOUNCING_DELAY 5
|
||||||
|
|
||||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
#define LOCKING_SUPPORT_ENABLE
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
/* Locking resynchronize hack */
|
/* Locking resynchronize hack */
|
||||||
#define LOCKING_RESYNC_ENABLE
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
/* key combination for command */
|
/* key combination for command */
|
||||||
#define IS_COMMAND() ( \
|
#define IS_COMMAND() ( \
|
||||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||||
)
|
)
|
||||||
|
|
||||||
/* ws2812 RGB LED */
|
/* ws2812 RGB LED */
|
||||||
#define RGB_DI_PIN D3
|
#define RGB_DI_PIN D3
|
||||||
#define RGBLIGHT_TIMER
|
#define RGBLIGHT_TIMER
|
||||||
#define RGBLED_NUM 12 // Number of LEDs
|
#define RGBLED_NUM 12 // Number of LEDs
|
||||||
#define ws2812_PORTREG PORTD
|
#define ws2812_PORTREG PORTD
|
||||||
#define ws2812_DDRREG DDRD
|
#define ws2812_DDRREG DDRD
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Feature disable options
|
* Feature disable options
|
||||||
* These options are also useful to firmware size reduction.
|
* These options are also useful to firmware size reduction.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* disable debug print */
|
/* disable debug print */
|
||||||
// #define NO_DEBUG
|
// #define NO_DEBUG
|
||||||
|
|
||||||
/* disable print */
|
/* disable print */
|
||||||
// #define NO_PRINT
|
// #define NO_PRINT
|
||||||
|
|
||||||
/* disable action features */
|
/* disable action features */
|
||||||
//#define NO_ACTION_LAYER
|
//#define NO_ACTION_LAYER
|
||||||
//#define NO_ACTION_TAPPING
|
//#define NO_ACTION_TAPPING
|
||||||
//#define NO_ACTION_ONESHOT
|
//#define NO_ACTION_ONESHOT
|
||||||
//#define NO_ACTION_MACRO
|
//#define NO_ACTION_MACRO
|
||||||
//#define NO_ACTION_FUNCTION
|
//#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -44,6 +44,16 @@
|
||||||
#define DISABLE_AUDIO_COUNTER_1_ISR TIMSK1 &= ~_BV(OCIE1A)
|
#define DISABLE_AUDIO_COUNTER_1_ISR TIMSK1 &= ~_BV(OCIE1A)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef B6_AUDIO
|
||||||
|
#define ENABLE_AUDIO_COUNTER_1_ISR TIMSK1 |= _BV(OCIE1B)
|
||||||
|
#define DISABLE_AUDIO_COUNTER_1_ISR TIMSK1 &= ~_BV(OCIE1B)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef B7_AUDIO
|
||||||
|
#define ENABLE_AUDIO_COUNTER_1_ISR TIMSK1 |= _BV(OCIE1C)
|
||||||
|
#define DISABLE_AUDIO_COUNTER_1_ISR TIMSK1 &= ~_BV(OCIE1C)
|
||||||
|
#endif
|
||||||
|
|
||||||
// TCCR3A: Timer/Counter #3 Control Register
|
// TCCR3A: Timer/Counter #3 Control Register
|
||||||
// Compare Output Mode (COM3An) = 0b00 = Normal port operation, OC3A disconnected from PC6
|
// Compare Output Mode (COM3An) = 0b00 = Normal port operation, OC3A disconnected from PC6
|
||||||
|
|
||||||
|
@ -57,6 +67,16 @@
|
||||||
#define DISABLE_AUDIO_COUNTER_1_OUTPUT TCCR1A &= ~(_BV(COM1A1) | _BV(COM1A0));
|
#define DISABLE_AUDIO_COUNTER_1_OUTPUT TCCR1A &= ~(_BV(COM1A1) | _BV(COM1A0));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef B6_AUDIO
|
||||||
|
#define ENABLE_AUDIO_COUNTER_1_OUTPUT TCCR1A |= _BV(COM1B1);
|
||||||
|
#define DISABLE_AUDIO_COUNTER_1_OUTPUT TCCR1A &= ~(_BV(COM1B1) | _BV(COM1B0));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef B7_AUDIO
|
||||||
|
#define ENABLE_AUDIO_COUNTER_1_OUTPUT TCCR1A |= _BV(COM1C1);
|
||||||
|
#define DISABLE_AUDIO_COUNTER_1_OUTPUT TCCR1A &= ~(_BV(COM1C1) | _BV(COM1C0));
|
||||||
|
#endif
|
||||||
|
|
||||||
// Fast PWM Mode Controls
|
// Fast PWM Mode Controls
|
||||||
|
|
||||||
#ifdef C6_AUDIO
|
#ifdef C6_AUDIO
|
||||||
|
@ -69,6 +89,16 @@
|
||||||
#define TIMER_1_DUTY_CYCLE OCR1A
|
#define TIMER_1_DUTY_CYCLE OCR1A
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef B6_AUDIO
|
||||||
|
#define TIMER_1_PERIOD ICR1
|
||||||
|
#define TIMER_1_DUTY_CYCLE OCR1B
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef B7_AUDIO
|
||||||
|
#define TIMER_1_PERIOD ICR1
|
||||||
|
#define TIMER_1_DUTY_CYCLE OCR1C
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -153,11 +183,25 @@ void audio_init()
|
||||||
PORTB &= ~_BV(PORTB5);
|
PORTB &= ~_BV(PORTB5);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef B6_AUDIO
|
||||||
|
DDRB |= _BV(PORTB6);
|
||||||
|
#else
|
||||||
|
DDRB |= _BV(PORTB6);
|
||||||
|
PORTB &= ~_BV(PORTB6);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef B7_AUDIO
|
||||||
|
DDRB |= _BV(PORTB7);
|
||||||
|
#else
|
||||||
|
DDRB |= _BV(PORTB7);
|
||||||
|
PORTB &= ~_BV(PORTB7);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef C6_AUDIO
|
#ifdef C6_AUDIO
|
||||||
DISABLE_AUDIO_COUNTER_3_ISR;
|
DISABLE_AUDIO_COUNTER_3_ISR;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef B5_AUDIO
|
#if defined(B5_AUDIO) || defined(B6_AUDIO) || defined(B7_AUDIO)
|
||||||
DISABLE_AUDIO_COUNTER_1_ISR;
|
DISABLE_AUDIO_COUNTER_1_ISR;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -171,7 +215,7 @@ void audio_init()
|
||||||
TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30);
|
TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef B5_AUDIO
|
#if defined(B5_AUDIO) || defined(B6_AUDIO) || defined(B7_AUDIO)
|
||||||
TCCR1A = (0 << COM1A1) | (0 << COM1A0) | (1 << WGM11) | (0 << WGM10);
|
TCCR1A = (0 << COM1A1) | (0 << COM1A0) | (1 << WGM11) | (0 << WGM10);
|
||||||
TCCR1B = (1 << WGM13) | (1 << WGM12) | (0 << CS12) | (1 << CS11) | (0 << CS10);
|
TCCR1B = (1 << WGM13) | (1 << WGM12) | (0 << CS12) | (1 << CS11) | (0 << CS10);
|
||||||
#endif
|
#endif
|
||||||
|
@ -199,7 +243,7 @@ void stop_all_notes()
|
||||||
DISABLE_AUDIO_COUNTER_3_OUTPUT;
|
DISABLE_AUDIO_COUNTER_3_OUTPUT;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef B5_AUDIO
|
#if defined(B5_AUDIO) || defined(B6_AUDIO) || defined(B7_AUDIO)
|
||||||
DISABLE_AUDIO_COUNTER_1_ISR;
|
DISABLE_AUDIO_COUNTER_1_ISR;
|
||||||
DISABLE_AUDIO_COUNTER_1_OUTPUT;
|
DISABLE_AUDIO_COUNTER_1_OUTPUT;
|
||||||
#endif
|
#endif
|
||||||
|
@ -249,7 +293,7 @@ void stop_note(float freq)
|
||||||
DISABLE_AUDIO_COUNTER_3_ISR;
|
DISABLE_AUDIO_COUNTER_3_ISR;
|
||||||
DISABLE_AUDIO_COUNTER_3_OUTPUT;
|
DISABLE_AUDIO_COUNTER_3_OUTPUT;
|
||||||
#endif
|
#endif
|
||||||
#ifdef B5_AUDIO
|
#if defined(B5_AUDIO) || defined(B6_AUDIO) || defined(B7_AUDIO)
|
||||||
DISABLE_AUDIO_COUNTER_1_ISR;
|
DISABLE_AUDIO_COUNTER_1_ISR;
|
||||||
DISABLE_AUDIO_COUNTER_1_OUTPUT;
|
DISABLE_AUDIO_COUNTER_1_OUTPUT;
|
||||||
#endif
|
#endif
|
||||||
|
@ -289,7 +333,7 @@ ISR(TIMER3_COMPA_vect)
|
||||||
if (playing_note) {
|
if (playing_note) {
|
||||||
if (voices > 0) {
|
if (voices > 0) {
|
||||||
|
|
||||||
#ifdef B5_AUDIO
|
#if defined(B5_AUDIO) || defined(B6_AUDIO) || defined(B7_AUDIO)
|
||||||
float freq_alt = 0;
|
float freq_alt = 0;
|
||||||
if (voices > 1) {
|
if (voices > 1) {
|
||||||
if (polyphony_rate == 0) {
|
if (polyphony_rate == 0) {
|
||||||
|
@ -463,10 +507,10 @@ ISR(TIMER3_COMPA_vect)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef B5_AUDIO
|
#if defined(B5_AUDIO) || defined(B6_AUDIO) || defined(B7_AUDIO)
|
||||||
ISR(TIMER1_COMPA_vect)
|
ISR(TIMER1_COMPA_vect)
|
||||||
{
|
{
|
||||||
#if defined(B5_AUDIO) && !defined(C6_AUDIO)
|
#if (defined(B5_AUDIO) || defined(B6_AUDIO) || defined(B7_AUDIO)) && !defined(C6_AUDIO)
|
||||||
float freq = 0;
|
float freq = 0;
|
||||||
|
|
||||||
if (playing_note) {
|
if (playing_note) {
|
||||||
|
@ -616,7 +660,7 @@ void play_note(float freq, int vol) {
|
||||||
#ifdef C6_AUDIO
|
#ifdef C6_AUDIO
|
||||||
DISABLE_AUDIO_COUNTER_3_ISR;
|
DISABLE_AUDIO_COUNTER_3_ISR;
|
||||||
#endif
|
#endif
|
||||||
#ifdef B5_AUDIO
|
#if defined(B5_AUDIO) || defined(B6_AUDIO) || defined(B7_AUDIO)
|
||||||
DISABLE_AUDIO_COUNTER_1_ISR;
|
DISABLE_AUDIO_COUNTER_1_ISR;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -638,7 +682,7 @@ void play_note(float freq, int vol) {
|
||||||
ENABLE_AUDIO_COUNTER_3_ISR;
|
ENABLE_AUDIO_COUNTER_3_ISR;
|
||||||
ENABLE_AUDIO_COUNTER_3_OUTPUT;
|
ENABLE_AUDIO_COUNTER_3_OUTPUT;
|
||||||
#endif
|
#endif
|
||||||
#ifdef B5_AUDIO
|
#if defined(B5_AUDIO) || defined(B6_AUDIO) || defined(B7_AUDIO)
|
||||||
#ifdef C6_AUDIO
|
#ifdef C6_AUDIO
|
||||||
if (voices > 1) {
|
if (voices > 1) {
|
||||||
ENABLE_AUDIO_COUNTER_1_ISR;
|
ENABLE_AUDIO_COUNTER_1_ISR;
|
||||||
|
@ -665,7 +709,7 @@ void play_notes(float (*np)[][2], uint16_t n_count, bool n_repeat)
|
||||||
#ifdef C6_AUDIO
|
#ifdef C6_AUDIO
|
||||||
DISABLE_AUDIO_COUNTER_3_ISR;
|
DISABLE_AUDIO_COUNTER_3_ISR;
|
||||||
#endif
|
#endif
|
||||||
#ifdef B5_AUDIO
|
#if defined(B5_AUDIO) || defined(B6_AUDIO) || defined(B7_AUDIO)
|
||||||
DISABLE_AUDIO_COUNTER_1_ISR;
|
DISABLE_AUDIO_COUNTER_1_ISR;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -691,7 +735,7 @@ void play_notes(float (*np)[][2], uint16_t n_count, bool n_repeat)
|
||||||
ENABLE_AUDIO_COUNTER_3_ISR;
|
ENABLE_AUDIO_COUNTER_3_ISR;
|
||||||
ENABLE_AUDIO_COUNTER_3_OUTPUT;
|
ENABLE_AUDIO_COUNTER_3_OUTPUT;
|
||||||
#endif
|
#endif
|
||||||
#ifdef B5_AUDIO
|
#if defined(B5_AUDIO) || defined(B6_AUDIO) || defined(B7_AUDIO)
|
||||||
#ifndef C6_AUDIO
|
#ifndef C6_AUDIO
|
||||||
ENABLE_AUDIO_COUNTER_1_ISR;
|
ENABLE_AUDIO_COUNTER_1_ISR;
|
||||||
ENABLE_AUDIO_COUNTER_1_OUTPUT;
|
ENABLE_AUDIO_COUNTER_1_OUTPUT;
|
||||||
|
|
Loading…
Reference in a new issue