diff options
author | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2013-09-09 17:13:58 +0400 |
---|---|---|
committer | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2013-09-09 17:13:58 +0400 |
commit | 617289fe32f953fa376b97d0172699ac2c066899 (patch) | |
tree | 2c235cd9795382a46cce91ac440dcb2b20ec6046 | |
parent | f79e8baa103ced7b57d1ce1bf9b705914f131a34 (diff) |
UTF-8 translation
-rw-r--r-- | clunet_config.h | 31 | ||||
-rw-r--r-- | sound.c | 16 |
2 files changed, 22 insertions, 25 deletions
diff --git a/clunet_config.h b/clunet_config.h index 925fb28..d630c2b 100644 --- a/clunet_config.h +++ b/clunet_config.h @@ -8,53 +8,50 @@ #ifndef __clunet_config_h_included__ #define __clunet_config_h_included__ -// (0-255) +// Адрес устройства (0-255) #define CLUNET_DEVICE_ID 7 -// +// Имя устройства #define CLUNET_DEVICE_NAME "Intercom" -// ( ) +// Размер буфера для чтения и передачи (сколько оперативки сожрать) #define CLUNET_SEND_BUFFER_SIZE 128 #define CLUNET_READ_BUFFER_SIZE 128 -// +// Порт и нога для отправки данных #define CLUNET_WRITE_PORT D #define CLUNET_WRITE_PIN 0 -// , +// Определить, если линия прижимается к земле транзистором #define CLUNET_WRITE_TRANSISTOR -// , +// Порт и нога для чтения данных, должна иметь внешнеее прерывание #define CLUNET_READ_PORT D #define CLUNET_READ_PIN 1 -// +// Предделитель таймера #define CLUNET_TIMER_PRESCALER 64 -// -#define CLUNET_TIMER_INIT {unset_bit4(TCCR2, WGM21, WGM20, COM21, COM20); /* Timer2, */ \ - unset_bit(TCCR2, CS22); set_bit2(TCCR2, CS21, CS20); /* 64x */ } +// Инициализация таймера +#define CLUNET_TIMER_INIT {unset_bit4(TCCR2, WGM21, WGM20, COM21, COM20); /* Timer2, нормальный режим */ \ + unset_bit(TCCR2, CS22); set_bit2(TCCR2, CS21, CS20); /* 64x предделитель */ } -// +// Регистр самого таймера и компарера #define CLUNET_TIMER_REG TCNT2 #define CLUNET_TIMER_REG_OCR OCR2 -// / +// Включение/выключение прерываний таймера #define CLUNET_ENABLE_TIMER_COMP set_bit(TIMSK, OCIE2) #define CLUNET_DISABLE_TIMER_COMP unset_bit(TIMSK, OCIE2) #define CLUNET_ENABLE_TIMER_OVF set_bit(TIMSK, TOIE2) #define CLUNET_DISABLE_TIMER_OVF unset_bit(TIMSK, TOIE2) -// +// Инициализация внешнего прерывания и его включение #define CLUNET_INIT_INT {set_bit(EICRA,ISC10);unset_bit(EICRA,ISC11);set_bit(EIMSK, INT1);} -// +// Векторы прерываний для таймера и внешнего прерывания #define CLUNET_TIMER_COMP_VECTOR TIMER2_COMP_vect #define CLUNET_TIMER_OVF_VECTOR TIMER2_OVF_vect #define CLUNET_INT_VECTOR INT1_vect -// -//#define CLUNET_ENABLE_BOOT_UPDATE - #endif
\ No newline at end of file @@ -97,10 +97,10 @@ ISR(TIMER1_COMPA_vect) value += -384+(RECORD_FIX); if (value < 0) value = 0; if (value > 0xFF) value = 0xFF; - //if (value >= 0x80-NOICE_LEVEL && value <= 0x80+NOICE_LEVEL) value = 0x80; // ... + //if (value >= 0x80-NOICE_LEVEL && value <= 0x80+NOICE_LEVEL) value = 0x80; // Небольшая защита от шумов... *buff = value; wi++; - OCR3C = value; // + OCR3C = value; // Воспроизведение на встроенный динамик writePosition = wi & (sizeof(buffer) - 1); bufferLeft++; set_bit(ADCSRA, ADSC); @@ -282,7 +282,7 @@ int init_wav_play() int play_wav(char* filename) { sound_stop(); - f_mount(0, &FATFS_Obj); // , SD + f_mount(0, &FATFS_Obj); // Перемонтирование на случай, если SD карта вытаскивалась if (f_open(&file, filename, FA_READ) != 0) return -1; if (init_wav_play() < 0) { @@ -326,18 +326,18 @@ int play_wav_auto_pgm(char* filename) int init_wav_rec() { recordedBytes = readPosition = 0; writePosition = 0; bufferLeft = 0; /* Flush FIFO */ - // , + // Для вывода на встроенный динамик того, что пишем TCNT3 = 0; TCCR3A = _BV(COM3C1) | _BV(WGM30); TCCR3B = _BV(WGM32) | _BV(CS30); OCR3C = 0x80; DDRE |= _BV(5); - // + // Снимаем напряжение с ноги вывода звука DDRE &= ~_BV(4); PORTE &= ~_BV(4); - // ADC1 - , ADC0 - , 10x + // ADC1 - позитивный, ADC0 - негативный, усиление 10x unset_bit(ADCSRA, ADEN); ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX0); /*| (1 << REFS1);*/ //ADCSRB = 0; @@ -357,12 +357,12 @@ int init_wav_rec() int rec_wav(char* filename) { - // 8 + // Заголовок на 8кГц BYTE header[] = {0x52, 0x49, 0x46, 0x46, 0x00, 0x00, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45, 0x66, 0x6D, 0x74, 0x20, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x40, 0x1F, 0x00, 0x00, 0x40, 0x1F, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00}; /* - // 16 + // Заголовок на 16кГц BYTE header[] = {0x52, 0x49, 0x46, 0x46, 0x00, 0x00, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45, 0x66, 0x6D, 0x74, 0x20, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x80, 0x3E, 0x00, 0x00, 0x80, 0x3E, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00}; |