Перейти к содержанию

Rapture

Members
  • Постов

    7
  • Зарегистрирован

  • Посещение

Весь контент Rapture

  1. Спасибо за советы. Попробую и так и так. Только пока что с трудом понимаю как реализовать фиксированую точку, как разделить целочисленную переменную на две части и отдельно их редактировать, при этом в меню при редактировании должна отображатся запятая между частями. И как потом сшить это и использовать в формуле в качестве вещественного числа? (суть вопроса осталась та же) Покажите на примерах пожалуйста
  2. Мой вопрос не в том как передать переменную, а в том как в меню на экранчике реализовать настройку отдельно целой и отдельно дробной части, при этом красиво и эффективно, не используя массу памяти. Такое ведь наверняка делали.
  3. В XC8 есть "урезаные" версии float и double, занимающий 3 байта. Спасибо. Не догадался) Переменная double обьявлена как union. Соответсвенно могу раскладывать и складывать ее по байтам. Хорошо, если на форуме найдутся такие люди которые уже делали такой функционал и помогут советом, чтобы я не изобретал велосипеды... ))
  4. EEPROM внешняя общая. Обмен с контроллерами по i2c Тут мне не понятно. Как это возможно если компилятор Си хранит double в 3 байтах? Как определить в каких байтах закодирована целая часть, а каких дробная?
  5. Добрый день. Работаю над проектом где есть два микроконтроллера PIC, EEPROM и дисплей с клавиатурой. На одном контроллере реализовано меню настроек где есть параметр с десятичной точкой(переменная double). Этот параметр сохраняется в EEPROM а потом читается другим контроллером для использования в алгоритме управления. Соответственно, нужно как то получать доступ отдельно к целой и дробной частям числа и изменять их как будто это два разных числа. Пробовал использовать modf() для получения целой и дробной части, менять их, а потом через sprintf() обьединять их в строку и далее через atof() получать обратно double, но такой способ использует непозволительно много памяти. Еще более оптимальный способ это хранить и изменять целую и дробную части как два однобайтовых числа, а второй контроллер уже будет сам "сшивать их" в переменную double как написано выше. Но это тоже как то не красиво. Подскажите какие еще есть способы "экономно" сделать это на МК про которые я еще не знаю? Может как то оптимизировать? Пишу на Си (компилятор XC8).
×
×
  • Создать...