[В микросхеме есть стабилитрон, который ограничивает напряжение на конденсаторе обычно на уровне 15В.
Микросхема неисправна - К/З по питающим выводам, конденсатор, или обрыв резисторов, которые к...
Тип: Сообщения; Пользователь: Oleg 9
[В микросхеме есть стабилитрон, который ограничивает напряжение на конденсаторе обычно на уровне 15В.
Микросхема неисправна - К/З по питающим выводам, конденсатор, или обрыв резисторов, которые к...
Как обычно глупости гоните. Память программ в PIC16 14 разрядная. Шина команд также имеет размер 14 бит. Нет там никаких 2 байт, инструкции хранятся блоками по 14 бит в ячейках памяти размером по 14...
Не верный. там нет выравнивания до 16 бит. veso74 компилировал один и тот же код си. Из-за разной архитектуры, для PIC получилось 245 words, для ATTiny13A 192 байт вот и думайте что хотите, но не...
И то уже хорошо. Видимо действительно постарались над компилятором для ATtiny13A, он находит, что деление fvco / с уже выполнялось и не вставляет этот код повторно при вычислении %.
Именно так. Всё...
Не ясно, как это понимать, одинаковый размер для обоих вариантов?
uint32_t b = fvco - a * c;
и
uint32_t b = fvco % с;
veso74, занятно :smile: А попробуйте так ради интереса, по смыслу абсолютно тоже самое:
void si5351_set_freq(uint32_t f) {
uint32_t fvco = (FVCO_MAX / f) & 0xFFFFFFFE; // fvco = 600 ... 900 MHz...
fvco, a и FXTAL какие типы имеют? По одной строчке кода не поймёшь, в чём причина такой странности. По любой логике так быть не должно. У меня как не старайся, вычисление остатка от деления...
В PIC контроллере word это 14 бит, если правильно помню. У PIC размер Flash изначально указывается в words а не в байтах. Для Atmel, вследствие другой архитектуры, тот же исходник на си...
Есть функция, которая принимает в качестве аргументов номер регистра, значение регистра и засылает их непосредственно в I2C. Если её добавить в проект без обращения к ней и специального описания, то...
Драйвер I2C с однократным вызовом добавляет 40 words. Для малого размера кода надо брать дисплеи со встроенными шрифтами типа 1602. Его обслуживание занимает тоже совсем немного памяти. Графический...
Откуда ж я знаю. Вывод на дисплей сами писали или готовую библиотеку взяли?
Помнится кто-то хотел засунуть программу простого синтезатора на Si5351 в Tiny с 1 KB. Теперь может быть получится. Если ещё учитывать из #661, что P2 = b << 7;
Насколько компиляторы разные. У меня для PIC такая замена даёт выигрыш в 48 words. 237 против 285 ;-)
Вот уже лучше, а зачем заменили
fr = 900000000 - XTAL_FREQ * mult;
на
fr = pllFreq % XTAL_FREQ;
У меня такая замена увеличивает размер и время выполнения?
veso74, у вас символ не правильный в строке 21, там не восклицательный знак ! , а вертикальная черта |.
Не правильно b != 1;
Правильно: b |= 1;
Попробуйте у себя скомпилировать такой же код, как у меня, без Serial и micros. Интересно, что получится.
#define XTAL_FREQ 25001866
unsigned long frequency = 10987654, pllFreq, b = 0, fr; ...
Скомпилировал код из вашего файла для PIC контроллера. Размер на выходе 237 байт. Картинка ниже. Откуда в ардуинах накачиваются 2 с лишним килобайта неведомо.
400485
Это всё так, но умение и привычка писать оптимальный код могут пригодится на любом контроллере, особенно если нужно отслеживать события близко к реальному времени. В нашем деле, применительно к...
Здесь нет никакого assembler-a, чистый классический си, плюс небольшое знание численных методов :smile:.
Так она и есть в герцах. Для вашего примера будет tcxo_F = 25001866;
unsigned char i;
unsigned long b, fr, tcxo_F;
......
......
fr = 24000000;
tcxo_F = 25001866;
i=20;