По поводу энкодера: случайно нашел другой прогр. код для управления. С "поврежденным энкодером" код ведет себя хорошо - нет ни одного ложного срабатывания, без фильтрующих конденсаторов, не по...
Тип: Сообщения; Пользователь: veso74
По поводу энкодера: случайно нашел другой прогр. код для управления. С "поврежденным энкодером" код ведет себя хорошо - нет ни одного ложного срабатывания, без фильтрующих конденсаторов, не по...
По-прежнему не знаем, что Вы собрали и как :). Начну с: тема про STM32.
Дайте хотя бы точные ссылки, с Ваше фото и подробностями. В противном случае ответ граничит с лотереей.
Не знаем какой у Вас дисплей, где пишете программный код, как обращаетесь к дисплею (I2c addr), как его инициализируете ...
Вариант:
- HAL использует 8-битный адрес. Попробуйте
#define...
Понятно, Circular Buffer, с чтением при включении и перезаписью при выключении питания.
Если бы было в STM32 Flash memory endurance 100k перезаписей, я бы не задавал свой вопрос. Спасибо за ответ.
Будет "напряг" или не, будет видно через какой-то время эксплуатации.
Сообщение было не чтобы вы что-то менять в интерфейс и настройках, а напр. как концептуально сделано.
Смотрю използуете I2c Auto Address Increment :up: :).
Все данные (без регистров 0xA1.., 0x2А..) загружаю только один раз: при инициализации. Reset там зачем? После инициализации только 2 х 8...
Сохраняете ли пользовательские данные: настройки и т.д. и напр. последняя использованная частота /по диапазонам/ и т.д. Если да, то что считается "новой информацией" для записи - после нового события...
Осваивая работу своего логического анализатора, подключенного в данном случае к I2c для синтезатора с ATtiny13A и Si5351A, достиг интересного момента.
В процессе оптимизации кода ATtiny13A ->...
Частота зарядки I2c Auto Address Increment быстрее на ~2 раза (на той же частоте шини) (regs: 26..33, 42..49).
Ниже: включил лог. анализатор специально для Вас:
PIC12F1572, HW I2c, 100 kHz...
Посм. I2c Auto Address Increment
Растет обем flash, но згружает частоту Si быстрее (без start, address ... stop на всех байтах, a только один раз для массива с данными, расположенными по...
Да. Для конкретного случая получилось: странно. А находил и другие такие действия в математических выражениях. Думаю, для ATtiny13A сильно переработали, с большим количеством допусков из-за...
Поэтому: пишем код, чтобы работало :). А если нужно что-то конкретное (как в этом случае: маленький объём, или высокая скорость, отсутствие конфликтов и т.п.), то начинается оптимизация, поиск...
PIC: никакой разницы (худший вариант - больше объема). Arduino: выровнени: 1414 байт :).
void si5351_set_freq(uint32_t f) {
uint32_t fvco = (FVCO_MAX / f) & 0xFFFFFFFE; // fvco = 600 ... 900 MHz
fvco *= f;
uint8_t a = fvco / FXTAL; // a = 15 ... 90
uint32_t b = fvco %...
Eще зависит и от компиляторов.
И в данном случае на C (PIC), другой на C++ ... их сложно сравнивать.
---
Попробовал и
uint32_t b = fvco % FXTAL; // b = 0 ... 1048575
uint32_t b = fvco...
Можно еще так: "старт", "запись addr", "запись data", "запись data", "запись data", "запись data", "запись data", "запись data", "запись data", "запись data", "стоп": (Auto Address Increment)....
Ну снизим требования к синтезаторам Si5351A и ATtin13A ;-): напр. для одного КВ диапазона (или для FM радио: 88..108 MHz?) , плюс больше всего иметь напр. одной кнопкой /шаг/. Это похоже на "мозговой...
В PIC, с используемым компилятором в рабочем коде для Si5351:
num = fvco - XTAL_FREQ * mult;
"выиграл" с 4 words в flash.
В Arduino, Arduino+MiniCore для ATtiny13A нет разницы.
Сравнить их в равных условиях. А тот расчет (qrp-labs) попробивал какое-то время назад, как он появился и портировать под другие МК. В основном не пользуюсь.
Оптимизации могут быть бесконечными, а...