А я наоборот - к абсолютным знаниям по конкретным кристаллам под ассемблером добавил ардуинкин Си/С++. теперь для прикладного применения в максимально жестких условиях можно "переферийку с мозгом" под ассемблером и с полным "потрошением" МК соорудить, а для дальнейшей обработки уже "ардуиноподобные" поставить. Вариантов подхода достаточно много...
подскажите как сделать что бы работало для Двойки.
Добавлено after 2 minutes 43 seconds: счас частота стоит на 161 102.5 что бы я не менял в коде. Понимаю что не понимаю сути, но пробовал читать, но увы.
Любая разработка начинается с чтения документации и изучения доступных средств разработки. Данный материал целиком посвящен средствам разработки, включая детальные инструкции по запуску вашего первого приложения на BlueNRG-LP. Описана работа с отладкой STEVAL-IDB011V1, набором инструментов и пакетом ПО позволяющим разработчику быстро войти в курс дела.
Тип данных unsigned int применённый для переменной divisor в микроконтроллерах AVR ограничен размером 2 байта или числа 0...65000. Возможно в этом и проблема, стоит попробовать изменить тип данных на больший.
Что привлекает в SiC по сравнению с кремнием, и какие особенности делают компоненты SiC часто используемыми, несмотря на более высокую стоимость в сравнении с кремниевыми высоковольтными устройствами? – Объясняет специалист ведущего разработчика силовых приборов из карбида кремния, компании Infineon.
Карма: 13
Рейтинг сообщений: 80
Зарегистрирован: Сб май 21, 2016 11:04:52 Сообщений: 2231 Откуда: Беларусь
Рейтинг сообщения: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
Рейтинг сообщений: 80
Зарегистрирован: Сб май 21, 2016 11:04:52 Сообщений: 2231 Откуда: Беларусь
Рейтинг сообщения: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: Хотя с оптимизацией тут возможно как статическую величину на этапе компиляции и посчитает правильно...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения