А я наоборот - к абсолютным знаниям по конкретным кристаллам под ассемблером добавил ардуинкин Си/С++. теперь для прикладного применения в максимально жестких условиях можно "переферийку с мозгом" под ассемблером и с полным "потрошением" МК соорудить, а для дальнейшей обработки уже "ардуиноподобные" поставить. Вариантов подхода достаточно много...
подскажите как сделать что бы работало для Двойки.
Добавлено after 2 minutes 43 seconds: счас частота стоит на 161 102.5 что бы я не менял в коде. Понимаю что не понимаю сути, но пробовал читать, но увы.
Пружинные клеммные блоки Degson для монтажа на печатную плату – это простое и надежное соединение, которое позволяет легко решать задачи для различных приложений за счет обширного ассортимента. Клеммники Degson доступны в двух конструктивных исполнениях (торцевой контакт и зажимная клеть), имеют различные направления ввода проводника (45°, 90°, 180°) и обладают широким диапазоном поперечных сечений (0,2…2,5 мм2).
Тип данных unsigned int применённый для переменной divisor в микроконтроллерах AVR ограничен размером 2 байта или числа 0...65000. Возможно в этом и проблема, стоит попробовать изменить тип данных на больший.
Компания «Компэл» и Analog Devices приглашают всех желающих 27/04/2021 принять участие в вебинаре, посвященном решениям Analog Devices для гальванической изоляции. В программе вебинара: технологии гальванической изоляции iCoupler, цифровые изоляторы, изолированное питание и технология isoPower, гальванически изолированные интерфейсы (RS-485, CAN, USB, I2C, LVDS) и другое.
Карма: 13
Рейтинг сообщений: 84
Зарегистрирован: Сб май 21, 2016 11:04:52 Сообщений: 2254 Откуда: Беларусь
Рейтинг сообщения:0
NStorm,
Код:
divisor = (unsigned long)(140575 + 10700) / 10;
не прокатило! сижу, дальше чешу репу. напряжение стоитт колом на выходе синтезатора.
Добавлено after 41 minute 1 second: поставил в другой приенмик и перешил снова на 27030 - все отлично работает. Напряжение скачет как-только катушку гетеродина трогаю
А переменная так и осталась объявлена как real? Если переменная объявлена как real (unsignet int), а присваивается значение unsignet long, то он всё равно не влезет.
radteh, там присваивается только тому, что в скобках (140575 + 10700), потом оно делится на 10 и должно влезть. Для теста просто можно написать divisor = 15127; временно.
Карма: 13
Рейтинг сообщений: 84
Зарегистрирован: Сб май 21, 2016 11:04:52 Сообщений: 2254 Откуда: Беларусь
Рейтинг сообщения:0
NStorm писал(а):
divisor = 15127
так это число в 2 байта влазит. Тогда зачем до unsignet long расширять?
Я тут прикинул , запущу приенмик на 28000, поменяю контур и посмотрю будет ли работать, может это прибавит ясности. Это я к тому что может выход гетеродина как-то не так себя ведет.
olegue, это если вы напишите сразу это значение. Когда вы пишите divisor = (140575 + 10700)/10, компилятор смотрит на тип divisor и обрезает значение скобок до его величины, т.е. до 0xFFFF, потом делит уже это значение на 10 и в divisor попадает 6553, а не 15127. Чтобы этого не происходило, я сначала и предложил написать (unsigned long), чтобы 140575 и 10700 компилятор сложил как 32-битную величину.
Добавлено after 8 minutes 18 seconds: Хотя с оптимизацией тут возможно как статическую величину на этапе компиляции и посчитает правильно...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения