ruhi
Members-
Постов
567 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Блоги
Весь контент ruhi
-
файлы которые начинаются Makefile не надо наверно трогать, зачем вы их открываете? Они вроде как автоматически генерятся! Вот они у вас и перегенирировались, стерлись ваши изменения в них и все стало хорошо (наверно).
-
это наверно где то в настройках проекта у вас процессор не тот выбран, для которого этот регистр не существует, ищите тип процессора в настройках проэкта (среды разработки)
-
это должно быть перед while! А в МК вы тоже можете менять загрузчик? тогда не понятно в чем проблема, две программы должны соответствовать друг другу только одна передает данные, а вторая принимает, соответствие должно быть по анализу этих передаваемых/принимаемых данных. Передавайте длину в байтах и читайте это кол-во байтов из принятых данных не зависимо от того сколько пришло "лишних" байтов в блоке если надо передавать блоками.
- 8 951 ответ
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
Тот кому не надо измерять температуру, видимо, горячий вы наш .
- 8 951 ответ
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
Это в каком это МК СРС считается аппаратно интересно, хотелось бы марку увидеть! Я штук 15 знаю, и могу гарантировать что не в одном НЕТ такой аппаратной функции! (Правда я не знаю что такое DS18x20, но маркировка как то не тянет на звание МК, по моему.) И я знаю как реализовать подсчет СРС штатными средствами любого МК так чтобы оно не создавало сколько нибудь ощутимых задержек основной программе. Собственно поэтому там и нет такой специальной аппаратной функции считать СРС, потому что СРС бывают разные, и для их расчета фоном достаточно ресурсов в любом МК.
- 8 951 ответ
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
можно в конец вашей программы в исходниках добавить-определить масив констант 0хFF размером 255 байт (надо смотреть на чем у вас исходники написаны, и есть ли исходники), и тогда вы сможете не добавлять байты к файлу, а наоборот округлять размер файла до значения кратного 256! потому что будет обрезаться этот дополнительный масив констант который в программе не используется (не должен использоваться)! на том же С# можно написать программу на 10 строчек которая будет дописывать файл ФФ-ами до длинны кратной 256, А программу которая загрузчик в КОМ порт вы не можете менять? Вообще бы там это делать! Можно еще передавать длину прошивки в байтах, но это опять надо загрузчик менять, но возможностей море, зависит от того что вам доступно для изменений- редактирования.
- 8 951 ответ
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
дык хорошо, так по вашей логике: зачем так сложно то городить - тянуть два провода, скручивать их, можно и один как нибудь бросить и землю по месту прицепить, я вижу здесь вы не согласитесь, потому что похоже разбираетесь ! А вот зачем нужно правильно контрольную сумму считать вам видимо лень разбираться, проще охаять то во что вникать не хочется, получается. Не хорошо это, как то, с вашей стороны! Про С# вы же тоже ничего не знаете и не понимаете, и зачем то эту вашу неграмотность по теме демонстративно продвигаете.
- 8 951 ответ
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
Вот интересно, как в шумных условиях помогает CAN? С помощью протокольной контрольной суммы которая считается по таблице? CAN ведь вроде не на дифференциальных линиях строится? А по вашей логике и дифференциальные линии тоже, наверно, какая то усложняющая ерунда непонятная, так ведь?
- 8 951 ответ
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
так оно еще от обвязки наверно зависит. Но я давно не занимался с таймерами, вам наверно виднее.
-
возможно это проблема с чтением из уарта, в этом коде while(!USART1->SR & USART_SR_RXNE); data35[y]=USART1->DR; Как будто у вас флаг принятого байта не сбрасывается! (он вроде как должен чтением сбрасываться, СКОРЕЕ ВСЕГО вы не тот флаг здесь проверяете!) Поэтому один и тот же байт записывается пока не придет новый байт! Это просто версия которую надо проверить.
- 8 951 ответ
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
наверно дело в том что прежде чем писать во флеш вы должны стереть флеш!, флеш стирается блоками, поэтому и писать лучше (но зависит от контекста) тоже блоками. В общем перед записью во флеш надо убедиться что вы пишете в свободное место (в стертые байты, обычно это 0xFF) во флеш.
- 8 951 ответ
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
SAMV71_Xplained_Ultra Самые быстрые из всех которые знаю, 300МГц, Я помню когда то Windows работал на процессорах с частотой 66МГц.
-
я бы оставил только "с помощью аппаратного таймера." выбор режима и ног и дополнительной обвязки зависит от способа интеграции с остальной программой, с остальной схемотехникой и заданными функциями управления генерацией + разрешение по управлению. Неплохо так набегает :).
-
да я расстроился только по поводу собственного склероза и/или невнимательности! Коментарий у меня получился корявый в своей неоднозначности :), но рассматривайте его исключительно с положительной по отношению к вам стороны! Я действительно удивлен встретить на этом форуме человека который способен самостоятельно и по делу(!) разобраться с применением указателя на функцию!
-
и вам принципиально нужно использовать функцию sprintf() ??? Может вам простым С-кодом подготовить строку которую вы хотите вывести? Си-шные библиотеки на контроллерах это такая вещь в себе и работают они в любом случае до поры до времени и тянут за собой кучу проблем.
-
напишите: goto <начальный адрес памяти программ> Это и будет программный ресет, без ресета аппаратного. Все что нужно там должно коректно повторно инициализироваться после такого перехода, так что должно сработать с точки зрения программирования, с точки зрения управления котлами я вам ничего не могу посоветовать. <начальный адрес памяти программ> равен нулю на АВР-ах насколько я помню.
-
Что за края, откуда у тебя эти края, зачем они тебе, почему речь идет именно о двух каналах (а не о 5-ти, об одном), как все это связано? Ты считаешь кто то в состоянии угадать-прочитать твои мысли и решить задачу которую ты не можешь сформулировать? То есть ты обращаешься к некоторым высшим существам, которые на такое способны (на чтение мыслей). Мне кажется при обращении к высшим существам надо какой то более уважительный стиль использовать, что ли, я уж не говорю об использовании разных ритуалов. Иначе как можно расчитывать на помощь? Мне, например, совершенно не понятно!
-
Если я вам скажу что это возможно, вы мне поверите на слово? Вам все равно это придется практически проверять, если вы собираетесь это использовать. А если не собираетесь использовать то зачем спрашивать? А когда вы начнете это практически проверять, то есть попытаетесь выдать в порт последовательность байт (например чередующиеся 0x00 и 0xFF и померить частоту полученного меандра), то вы скорее всего выясните, что максималная частота обновления данных на ногах процессора это не единственный параметр ограничивающий скорость взаимодействия через порт процессора. И вопрос потеряет актуальность скорее всего!
- 1 ответ
-
- микроконтроллер
- Stm32h7
-
(и ещё 1 )
C тегом:
-
Но объяснять лучше на сотнях, как вы показали выше! Вы написали самое наглядное объяснение какое можно придумать! Людям надо объяснять на человеческих числах, для машины использовать машинные, одно другому не противоречит.
-
так это ошибка в дробной части, а дробная часть все равно отбрасывается. Дело в том что точнее не нужно! Поэтому рассуждать о том что можно точнее (тщательнЕе- Жванецкий) смысла нет. Бояться не надо, надо избегать :)!
-
если много точек надо считать то можно еще оптимизировать, перепишем: 37 * 100 * 50 / 150 = 1233. как 37 * (50 * 100 / 150) = 1233 вот это частное в скобках можно один раз посчитать в переменную, и потом ее использовать для всех точек. вместо 100 будет 256 намного лучше, потому как точность константы повышается. Х * (50 * 100 / 150) = 1233 или Х * (CONST) = 1233 Х1 * (CONST) = Y1
-
Я действительно пропустил один момент, но не этот. Я не обратил внимание что переменная "а" сохраняется между вызовами функции поскольку статическая, конструкция очень не стандартная поэтому я даже не пытался ее анализировать, потому что безапеляционно решил что это ошибка, так бывает у всех - не все в состоянии это признать. С учетом этого моего упущения смысл, действительно, появляется. Похоже ваша улыбка простимулировала понимание, или более дружелюбные коментарии ... ! А вообще такие трюки нестандартные обязательно пояснять надо тщательно - вы через месяц сами замучались бы вспоминать о чем это написано, если б не это обсуждение
-
но лучше все таки в 256 раз больше взять как написал @Yurkin2015 выше, тогда от результата надо просто последний байт отбросить, вся дробь в нем останется! Но это последнее пояснение наиболее наглядно, конечно! Да, и достаточно один раз на 100 (на 256) умножить: 37 * 100 * 50 / 150 = 1233.
-
Я рад что вы это освоили, вам осталось только найти где у вас используется 8-ми битная переменная, а где переменная типа int. Ну и разобраться в чем между ними разница. А насчет моих замечаний вы зря так расстраиваетесь, я, действительно, пытаюсь помочь, хоть и с некоторой долей сарказма. И мне кажется мой сарказм оправдан в ответ на ваш безапеляционный тон ни к чему не привязанных, не обоснованных заявлений.