<br>Спасибо! Проверить пытаюсь а выдает ошибку.<br><br><br><br>Вот что за хрень! Он типа ругается что я вызвал функцию которая не объявлена!<br>C:\Users\game\Ya ndexDisk\Р*Р»РµРєС‚С ЂРѕРЅРёРєР°\PICO_FM\ sketch_sep20a\sketch _sep20a.ino: In function 'void setup()':<br><br>ske tch_sep20a:14: error: 'sendFrequency' was not declared in this scope<br><br>C:\User s\game\YandexDisk\Р* лектроника \PICO_FM\sketch_sep2 0a\sketch_sep20a.ino : In function 'void sendFrequency(double )':<br><br>sketch_se p20a:27: error: 'tfr_word' was not declared in this scope<br><br>exit status 1<br>'sendFrequency ' was not declared in this scope
ВСЕ! разобрался! в пути к скетчу не понимает национальные символы и при компиляции ошибается!
Вопрос!
вот эта цифра как посчитана? Тут можно так понимаю какую-нить калибровку замутить, да?freq = frequency * 5.36870912; // note 50 MHz clock on 9834
Последний раз редактировалось UD0DAB; 20.09.2017 в 02:18.
А кто как сохраняет в памяти текущую частоту? Пишут что епром дохнет быстро от частых записей в него (например 2 секунды не кручу валкод и частота заносится в память).
Пишу EEPROM;
Считываю;if (memstatus == 0) {
if (timepassed + 2000 < millis()) {
storeMEM();
}
}
void storeMEM() { EEPROM.write(0, millions);
EEPROM.write(1, hundredthousands);
EEPROM.write(2, tenthousands);
EEPROM.write(3, thousands);
EEPROM.write(4, hundreds);
EEPROM.write(5, tens);
EEPROM.write(6, ones);
memstatus = 1;
};
freq = String(EEPROM.read(0 )) + String(EEPROM.read(1 )) + String(EEPROM.read(2 )) + String(EEPROM.read(3 )) + String(EEPROM.read(4 )) + String(EEPROM.read(5 )) + String(EEPROM.read(6 ));
Последний раз редактировалось Slav9n; 20.09.2017 в 04:46.
Спасибо от UD0DAB
Если будете прям каждые 2 секунды писать - сдохнет, а если через 2 секунды после последних изменений частоты (покрутили ручку, а потом 2 секунды не крутим) - хватит надолго, я думаю.
Максимальная разрядность счетчика-делителя (или как его там правильно назвать) 28 бит поделить на тактовую частоту - 268 435 456 / 50 000 000, для наглядности можно так и прописать вместо 5.3#### (правда компилятор может типы попутать). Калибровку тут, ага.
Спасибо от UD0DAB
Slav9n,
Замените EEPROM.write на EEPROM.put, тогда новая запись будет производиться только в случае, если новые данные отличаются от ранее записанных. Это многократно увеличит ресурс записи EEPROM.
Добавлено через 36 минут(ы):
И да, пишите в EEPROM секунд через 10 после того, как отпустили ручку.
Последний раз редактировалось IG_58; 20.09.2017 в 10:11.
Спасибо от Slav9n
Чтобы при отключении питания не делать.
Питание отключается гораздо реже, чем ручка поворачивается
rm4hq делает оптимально.
Это понятно, но нужно совершать некоторые телодвижения по контролю питания, а то и целую ногу под это отдать - жалко Я примерно прикинул на сколько хватит EEPROM - мне вполне достаточно, а если это будет в единственном трансивере стоять, который крутят каждый день часами или на продажу... тогда нехорошо.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)