Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/intercom.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2013-09-09 17:13:58 +0400
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2013-09-09 17:13:58 +0400
commit617289fe32f953fa376b97d0172699ac2c066899 (patch)
tree2c235cd9795382a46cce91ac440dcb2b20ec6046
parentf79e8baa103ced7b57d1ce1bf9b705914f131a34 (diff)
UTF-8 translation
-rw-r--r--clunet_config.h31
-rw-r--r--sound.c16
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
diff --git a/sound.c b/sound.c
index cfa9da0..406bff5 100644
--- a/sound.c
+++ b/sound.c
@@ -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};