Ср июн 01, 2022 01:32:12
Ср июн 01, 2022 06:34:39
Ср июн 01, 2022 07:19:42
Ср июн 01, 2022 07:49:34
StopRec(); // launch StopRec method
/* Поэтому (Делаем программную перезагрузку). */
((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;
void loop() { // THIS RUNS LOTS!
if (digitalRead(btnStart) == LOW && recPressed == 0) {
StartRec(); // launch StartRec method
}
if (digitalRead(btnStop) == LOW) {
StopRec(); // launch StopRec method
}
if (recByteCount % 1024 == 512 && recPressed == 1) { rec.write(buf00,512); recByteSaved+= 512; } // save buf01 to card
if (recByteCount % 1024 == 0 && recPressed == 1) { rec.write(buf01,512); recByteSaved+= 512; } // save buf02 to card
}
После окончания записи, в памяти контроллера остаются данные.
И за этого следующая запись бывает качеством хуже.
Поэтому (Делаем программную перезагрузку).
*/
((void (*)())0x0000)(); /* Делаем программную перезагрузку - Arduino */
Ср июн 01, 2022 08:23:28
Ср июн 01, 2022 09:01:39
Ср июн 01, 2022 10:29:59
byte RecordNumber; /* Номер записи - храним в EEPROM. в диапазоне 0..255. */
..................
/* Записываем в RecordNumber, значение из ячейки №0 EEPROM, и прибавляем 1. */
RecordNumber = EEPROM.read(0) + 1;
/* Записываем в ячейку №0 EEPROM, увеличенное значение RecordNumber. */
EEPROM.write(0, RecordNumber);
int RecordNumber; /* Номер записи - храним в EEPROM. в диапазоне 0..32767. */
..................
void loo(){
.............
/* Записываем в RecordNumber, значение из ячейки №0 EEPROM, и прибавляем 1. */
EEPROM.get(0,RecordNumber+ 1) ;
/* Записываем в ячейку №0 EEPROM, увеличенное значение RecordNumber. */
EEPROM.put(0, RecordNumber);
Ср июн 01, 2022 13:12:23
Morroc писал(а):а мы это успеем между отсчетами ADC ? это надо практически проверять, все остальное вполне возможно
Ср июн 01, 2022 13:21:43
Ср июн 01, 2022 13:35:20
да, тем более, что теперь можно записывать туда сразу сформированное имя, а не только int (если это понадобится)olegue писал(а):так пойдет?
Ср июн 01, 2022 14:43:10
roman.com писал(а):Morroc писал(а):а мы это успеем между отсчетами ADC ? это надо практически проверять, все остальное вполне возможно
а давайте посчитаем ! )) а лучше измерим))
Ср июн 01, 2022 15:14:16
да, тем более, что теперь можно записывать туда сразу сформированное имя, а не только int (если это понадобится)olegue писал(а):так пойдет?
if (digitalRead(btnStart) == LOW && recPressed == 0) {
/* Записываем в RecordNumber, значение из ячейки №0 EEPROM, и прибавляем 1. */
/*RecordNumber = EEPROM.read(0) + 1;*/
if (RecordNumber == 32767)RecordNumber = 0;
EEPROM.get(0,RecordNumber) ;
/* Записываем в ячейку №0 EEPROM, увеличенное значение RecordNumber. */
/*EEPROM.write(0, RecordNumber);*/
EEPROM.put(0, RecordNumber+1);
roman.com писал(а):берём код ADC...
Ср июн 01, 2022 15:29:02
32767 не очень красиво, наверняка в ардуино есть константа типа INT_MAX, и тогда запись if (RecordNumber == INT_MAX) RecordNumber = 0; более универсальна - вдруг завтра int станет 4-разрядным... Но это так, мелочь и несущественно.olegue писал(а): if (RecordNumber == 32767)RecordNumber = 0;
Ср июн 01, 2022 15:52:38
olegue писал(а):я смотрю тут Роман атмегу8 параллельно заряжает...
Ср июн 01, 2022 16:09:03
Ср июн 01, 2022 16:44:46
32767 не очень красиво, наверняка в ардуино есть константа типа INT_MAX, и тогда запись if (RecordNumber == INT_MAX) RecordNumber = 0; более универсальна - вдруг завтра int станет 4-разрядным... Но это так, мелочь и несущественно.olegue писал(а): if (RecordNumber == 32767)RecordNumber = 0;
void Setup_ADC() {
ADMUX = 0x65; // set ADC to read pin A5, ADLAR to 1 (left adjust)
cbi(ADCSRA, ADPS2); // set prescaler to 8 / ADC clock = 2MHz
sbi(ADCSRA, ADPS1);
sbi(ADCSRA, ADPS0);
Ср июн 01, 2022 17:01:45
Ср июн 01, 2022 17:45:51
Ср июн 01, 2022 18:31:55
Ср июн 01, 2022 18:55:39