Драйвер I2C с однократным вызовом добавляет 40 words. Для малого размера кода надо брать дисплеи со встроенными шрифтами типа 1602. Его обслуживание занимает тоже совсем немного памяти. Графический...
Тип: Сообщения; Пользователь: Oleg 9
Драйвер 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;
veso74, не понял, к чему ваш пример. Если при частоте кварца 25000000 остаток от деления на целую часть 24000000, то оставаясь в 32 битной арифметике не получится 24000000 * 1048576, чтобы потом...
С любыми компиляторами умножение на 1048575 и умножение на 1048576 (сдвиг на 20 разрядов влево) это абсолютно разные операции. Первая дольше выполняется и занимает больше места, а также не...
Подскажу как реализовать умножение со сдвигом на 20 разрядов в 32 битной арифметике, всё равно вряд-ли кто будет делать, всем же лень разобраться и написать свою функцию, проще использовать готовый...
Наблюдаю за обсуждением алгоритмов расчёта уже несколько лет, странно, что кроме меня никто не догадался при расчётах применять делитель 1048576. В итоге вместо громоздкой и долгой операции...
Сегодня прогнозировали магнитные бури и чего-то лень углубляться в математику. :smile: Но прикинем чисто логически. Возьмём идеальный компаратор и подадим на его вход идеальный синус 10 МГц и 100 Гц....
Вадим, на первый взгляд вроде всё логично, но на интуитивном уровне присутствует несогласие. :smile: Если зарассуждать от обратного. При делении частоты фазовый шум уменьшается на 6 дБ с каждым...
Вадим, уточните народу, вдвое по мощности или напряжению? ;-) В первом случае имеем суммарно 6 дБ, во втором 12 дБ. Мне чудится, что речь про мощность :smile:
Да, так. Единственное, проверить напряжение на выводе S-метра 21 при минимальном усилении. Когда движок R97 установлен в нижнее по схеме положение. Если напряжение больше 3,3В, включить...
Религиозных фанатиков, которые не могут себе поставить Windows ради возможности пользования прибором и бегут от неё как чёрт от ладана, вообще по пальцам можно пересчитать и на их заморочки уж точно...