Показано с 1 по 10 из 11

Тема: Нет связи с ТРМ202-Щ2.РР(М02)

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    УРА. Мой Атмега48 "достучался" до ТРМ202. Приходится два раза посылать приведённый выше запрос и более менее стабильно работает на скорости 4800 и времени задержки ответа 45 мс.
    Контроллер работает на частоте 3,6864 МГц. Почему программа не работает с большими скоростями? Попробую увеличить частоту кварца до 14 МГц.
    ПОДСКАЖИТЕ ПРОГРАММКУ или ИСТОЧНИКИ как осуществить перевод Float24 в десятичную дробь. Спасибо.
    Последний раз редактировалось Антон_Б; 01.10.2008 в 18:29.

  2. #2

    По умолчанию

    Цитата Сообщение от Антон_Б Посмотреть сообщение
    как осуществить перевод Float24 в десятичную дробь. Спасибо.
    Float24 - это значение в формате IEEE 754 c отброшенным младшим байтом. то есть обычное значение с плавающей запятой.

    согласно протоколу овен первым в посылке передается старший байт, и на архитектуре интел (little-endian) процедура перевода поля данных во float выглядит так:

    Код:
    void unpackFloat24(unsigned char* data, size_t dataSize, float* value)
    {
    	unsigned char* p = (unsigned char*)(value);
    
    	assert(data);
    	assert(dataSize == 3);
    	assert(value);
    
    	p[0] = 0;
    	p[1] = data[2];
    	p[2] = data[1];
    	p[3] = data[0];
    }

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •