Ср ноя 16, 2022 17:59:22
olegue писал(а):может просто не пролазит в в канал UART 115200+ GPRS?
Ср ноя 16, 2022 18:18:48
TCCR2B = _BV(CS21); // Timer2 Clock Prescaler to :
TCCR2B = _BV(CS20); // Timer2 Clock Prescaler to : 32
TCCR2A = _BV(WGM21); // Interupt frequency = 16MHz / (32 x 125 + 1) = 4000Hz
OCR2A = 125; // Compare Match register set to 125 Перешл на 4кгц
Ср ноя 16, 2022 18:30:42
Ср ноя 16, 2022 18:50:08
Ср ноя 16, 2022 19:04:38
Ср ноя 16, 2022 19:04:59
roman.com писал(а):если загрузить новые данные во внутренний буфер модуля... не дождавшись отправки предыдущего пакета... то будет плохо))
потеряем пакет... или потеряем данные... короче что то мы полюбому потеряем )) в зависимости от ситуации))
Ср ноя 16, 2022 19:59:48
olegue писал(а):скорость передающего потока может быть любой, поток накапливается в буфере на приемной стороне и оттуда воспрозиводиться с заданым сэмплрейтом. Или в жизни не так?
Ср ноя 16, 2022 20:43:17
olegue писал(а):у тебя популярный модуль sim800...
неужели никто до тебя этого не делал ? ))
olegue писал(а):может буфер UART 115200+ GPRS переполняется и не успевает передавать байты... что мало вероятно)
Чт ноя 17, 2022 00:17:29
olegue писал(а):это какая-то дичь и до меня такой фигней никто не занимался.
olegue писал(а):до этого я делал все что бы ускорить отправку, счас попробую ее замедлить. Это хороший план!
Чт ноя 17, 2022 12:44:59
if ((millis()-timerHour)>3)
{
for (int x=0; x<1024; x ++){
myGsm.write(st_pak); // st_pak - счётчик пакетов
};
// st_pak - счётчик пакетов
st_pak ++;
// st_pak - счётчик пакетов MAX = 255
if (st_pak == 255) {st_pak = 0;}
timerHour=millis();
}
Чт ноя 17, 2022 16:13:53
Чт ноя 17, 2022 16:37:01
Чт ноя 17, 2022 17:34:34
Пт ноя 18, 2022 00:54:10
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;
}
ISR(TIMER2_COMPA_vect) {
//ADMUX = 0x60; // set ADC to read pin A1, ADLAR to 1 (left adjust)
sbi(ADCSRA, ADSC); // start ADC sample
while (bit_is_set(ADCSRA, ADSC)); // wait until ADSC bit goes low = new sample ready
recByteCount++; // increment sample counter
//Serial.println(recByteCount);
bufByteCount++;
if (bufByteCount == 512 && bufWrite == 0) {
bufByteCount = 0;
bufWrite = 1;
} else if (bufByteCount == 512 & bufWrite == 1) {
bufByteCount = 0;
bufWrite = 0;
}
Пт ноя 18, 2022 10:47:35
Пт ноя 18, 2022 13:30:31
[b]лучше так.[/b]..
----------
ISR(TIMER2_COMPA_vect) {
sbi(ADCSRA, ADSC); // start ADC sample
while (bit_is_set(ADCSRA, ADSC)); // wait until ADSC bit goes low = new sample ready
if (bufWrite == 0) { // флаг выбор буфера 0
buf00[bufByteCount] = ADCH;
}
if (bufWrite == 1) { // флаг выбор буфера 1
buf01[bufByteCount] = ADCH;
}
bufByteCount++; // счёт буфер
if (bufByteCount == 256 && bufWrite == 0) { // если 256 и флаг выбор буфера 0
bufByteCount = 0;
bufWrite = 1; // флаг выбор буфера 1
myGsm.write(buf00, 256); // буфер 0 полный. Передача буфера 0.
}
if (bufByteCount == 256 && bufWrite == 1) { // если 256 и флаг выбор буфера 1
bufByteCount = 0;
bufWrite = 0; // флаг выбор буфера 0
myGsm.write(buf01, 256); // буфер 1 полный. Передача буфера 1.
}
}
Пт ноя 18, 2022 14:26:30
olegue писал(а):а это нормально если прямо из функции прерывания таймера отправлять данные?
Сб ноя 19, 2022 11:03:33
Сб ноя 19, 2022 11:53:03
olegue писал(а):Ваш java плейер регирует на эти данные так же как и на данные отправленные с модуля sim800, т.е первые 1.5 сек - нормлаьно , потом начинает рвать поток и тут уже канал не причем.
olegue писал(а):Написал небольшой скрипт в PowerShell Для разделения wav файла на пакеты по 1кб и отправки их на udp server
Вс ноя 20, 2022 14:32:33