А что если запилить такой же курс по KiCAD? Он может и не подходит для профессионального применения и сложных проектов, но для любителя вполне сойдет. Сайт посещают как профессионалы так и любители, и далеко не у всех есть несколько тысяч на покупку Альтиума, а KiCAD бесплатен. Я могу сделать свой вклад в это дело, так как пользуюсь им. Будет ли интересно людям?
На счет умножения и деления чисел с фиксированной точкой. 64-х разрядное умножение и особенно деление может быть очень медленным. Особенно на 8-ми и 16-ти битниках. А умножение и деление можно реализовать и без использования типов с большей разрядностью. Например умножение q16:
uint32_t mult_q16(uint32_t a, uint32_t b)
{
uint32_t inta = a >> 16;
uint32_t intb = b >> 16;
uint32_t fracta = a & 0x0000ffff;
uint32_t fractb = b & 0x0000ffff;
uint32_t result = (inta * intb << 16) + (inta * fractb + fracta * intb) + (fracta * fractb >> 16);
return result;
}
Нужно 4 умножения 16х16=>32 бита.
Деление q16:
uint32_t div_q16(uint32_t a, uint32_t b)
{
uint32_t r = a >> 16, q = a << 16;
uint_fast8_t carry = 0;
for (uint_fast8_t i = 0; i < 32; i++)
{
if(r & 0x80000000)
carry = 1;
else
carry = 0;
r <<= 1;
if (q & 0x80000000)
r |= 1;
q <<= 1;
if (r >= b || carry)
{
q = q | 1;
r -= b;
}
}
return q;
}
Хоть оно и побитовое, но работает в разы бsстрее, чем х64 деление на Cortex-m3. Может быть можно сделать еще быстрее используя аппаратное деление 32/32=>32 и алгоритм Кнута.
Лучше ввести дополнительное поле, которое по-умолчанию заполнять какой-то разумной величиной, например 5 или 10%, возможно разной в разных расчётах. Иначе проще воспользоваться другим калькулятором или написать формулу в экселе, тем более что на практике чаще приходится иметь дело с более сложными схемами, а такие как источник тока рассчитываются в уме без калькулятора.
Для написания уроков, Альтиум подарил мне полную лицензию, за что им большое спасибо. По внешнему виду устройства врядли кто-то сможет определить в чем оно сделано, а вот по герберам и другим файлам — без проблем. Ну а проблемы с законом зависят уже от кучи других, не технических, факторов.
А Вы покупали Альтиум или используете 30-ти дневную лицензию? Просто я вот подумал, что вдруг ко мне на компьютер попал не лицензионный Альтиум, я разработал устройство и продаю его. Могут ли в этом случае возникнуть проблемы с законом?
Привет. Предлагаю очень простой фикс для проблемы огромных изображений на сайте. Я проиллюстрировал проблему и решение в трех картинках: imgur.com/a/fg3cZ#0
Я думал над этим. Дополнительное поле делать не хочется, чтобы не усложнять ввод данных. Можно, конечно, жестко забить какую-то цифру, но, ведь, неизвестно, что человеку нужно. Поэтому, я оставил как есть.
Добавил в статью. И еще добавил про умножения на целые числа.
Нужно 4 умножения 16х16=>32 бита.
Деление q16:
Хоть оно и побитовое, но работает в разы бsстрее, чем х64 деление на Cortex-m3. Может быть можно сделать еще быстрее используя аппаратное деление 32/32=>32 и алгоритм Кнута.
Для таких лучше симуляторы юзать, а калькуляторы для БЫСТРОГО расчета мелких узлов оставить.
Лично мне калькуляторы хорошо жизнь облегчают.
В любом случае, отфильтровать глазами© у меня получается довольно быстро и дискомфорта не вызывает.
EXPLANATION
Answer 2^24 *12.5ns = 209,715,200ns = 0.2sec ± 10%
А что не позно сейчас вводить результат?