Вт май 31, 2022 11:51:15
Вт май 31, 2022 12:19:13
Вт май 31, 2022 12:40:08
Morroc писал(а):давайте сразу без МК писать на ПК, у нас что, звуковухи нет ? )))
void loop(){
label:
Если (Кнопка==LOW) {НачатьЗапись();} // Кнопка нажата - начата запись
Иначе Если (Кнопка==HIGH) // Кнопка отпущена (попытка остановить запись)
{
if (millis() - timing > 2000) //считаем 2 секунды с момента прекращения записи
{
timing = millis();
Если (Кнопка==LOW) {GOTO label; // Если в течении 2сек кнопка нажалась уходим в начало loop
}
// Есили Кнопка по прежнему отпущена
ОстановитьЗапись();
}
СбросДанныхНаКарту();
}
Вт май 31, 2022 12:48:20
Вт май 31, 2022 12:57:24
void loop(){
Если (Кнопка==LOW) {НачатьЗапись();} // Кнопка нажата - начата запись
Иначе Если (Кнопка==HIGH) // Кнопка отпущена (попытка остановить запись)
{
if (millis() - timing > 2000) //прошло 2 секунды с момента прекращения записи
{
timing = millis();
Если (Кнопка==LOW) {GOTO label; // Если запись возобновили перейдем по метке
}
// Есили запись не возобнолена, оставновим
ОстановитьЗапись();
}
label: //Поставлю метку сюда. Так логичее что-ли???
СбросДанныхНаКарту();
}
Вт май 31, 2022 13:22:03
Вт май 31, 2022 14:44:38
Вт май 31, 2022 15:02:42
Вт май 31, 2022 15:45:59
Вт май 31, 2022 15:49:26
И я подумал, если между собеседниками пауза таки есть , то почему бы ее программно сгладить что ее как бы нет ведь выступления идут один за другим без остановки.
Вт май 31, 2022 16:09:28
olegue писал(а):если у вас релюшка, то можно было как две кнопки сделать и использовать с изначальным кодом, в нормальном положении стоп, в замкнутом запись - не пробовали ?
Morroc писал(а):в общем просто задержка стопа записи чтобы при коротких паузах продолжалась запись, а при >2 сек уже стоп ?
Вт май 31, 2022 16:51:48
Morroc писал(а):давайте сразу без МК писать на ПК, у нас что, звуковухи нет ? )))
Вт май 31, 2022 16:52:39
unsigned long timer1;
int timer1on = 0;
void loop() { // THIS RUNS LOTS!
if (digitalRead(btnStart) == LOW && recPressed == 0) {
/* Записываем в RecordNumber, значение из ячейки №0 EEPROM, и прибавляем 1. */
RecordNumber = EEPROM.read(0) + 1;
/* Записываем в ячейку №0 EEPROM, увеличенное значение RecordNumber. */
EEPROM.write(0, RecordNumber);
/* Для конвертации из byte в char / из RecordNumber в NameRecord */
String str; //declaring string.
str = String(RecordNumber); //converting integer into a string.
str.toCharArray(NameRecord, 4); //passing the value of the string to the character array.
StartRec(); // launch StartRec method
timer1on = 0;
}
else if (digitalRead(btnStart) == HIGH && recPressed == 1 && timer1on == 0) {
timer1 = millis();
timer1on = 1;
}
else if (digitalRead(btnStart) == HIGH && recPressed == 1 && timer1on == 1 && (millis() - timer1) > 2000) {
StopRec();
/*
После окончания записи, в памяти контроллера остаются данные. <- какая то странная дичь написана
И за этого следующая запись бывает качеством хуже.
Поэтому (Делаем программную перезагрузку).
*/
((void (*)())0x0000)(); /* Делаем программную перезагрузку - Arduino */
}
if (recByteCount % 1024 == 512 && recPressed == 1) {
rec.write(buf00, 512); // save buf01 to card
recByteSaved += 512;
}
if (recByteCount % 1024 == 0 && recPressed == 1) {
rec.write(buf01, 512); // save buf02 to card
recByteSaved += 512;
}
}
Вт май 31, 2022 17:01:56
else if (digitalRead(btnStart) == HIGH && recPressed == 1 && timer1on == 0) {
timer1 = millis();
timer1on = 1;
}
else if (digitalRead(btnStart) == HIGH && recPressed == 1 && timer1on == 1 && (millis() - timer1) > 2000) {
StopRec();
Вт май 31, 2022 17:18:33
Вт май 31, 2022 18:08:12
Вт май 31, 2022 18:46:34
Вт май 31, 2022 18:53:19
Вт май 31, 2022 19:10:07
Вт май 31, 2022 19:20:38