Группа: Участник
Сообщений: 67
Регистрация: 30-11-07
Пользователь №: 32 846
Вопрос собственно в следующем: разработана плата (и что плохо изготовлена), где есть связка Atmega128 и термодатчик MAX6630 http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2577/t/al Выход термодатчика - 13 бит (12+знак) и еще мусор до 2 байт (по spi). как сравнить и обработать данные в восьмибитном микроконтроллере?
Группа: Свой
Сообщений: 140
Регистрация: 7-04-05
Из: Россия, Владимир
Пользователь №: 3 941
Попробуйте потестировать в отладчике мою функцию unsigned int hex2bcd (unsigned char hex) { unsigned char i; unsigned int bcd=0; for(i=0;i<8;i++) { if ((bcd & 0x0F) >= 0x05) bcd += 0x03; if ((bcd & 0xFF) >= 0x50) bcd += 0x30; bcd <<= 1; if ((hex & 0x80)==0x80) bcd |= 0x01; hex <<= 1; } return bcd; } Писано это около года назад, не помню где то в сети отрыл алгоритм быстрого преобразования hex to bcd, как раз с целью вывода на жки. Сюдя по тому что взято из рабочей проги, должно работать.