ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
324406
quarry (20.04.2012 16:28, просмотров: 3187)
вопрос по преобразованию двоичного в двоично-десятичное. есть ПП получения адреса на входе у неё значения от 0х00 до 0х63 (т.е. 0-99) в теле ПП это значение преобразуется к двоично-десятичному с помощью встроеной в IAR EW430 функции __bcd_add_short и вот незадача, до 0x0f всё нормально 0x15 на выходе, а уже 0x10 и больше преобразовывать отказывается это так и должно быть? я почему то был уверен что мне будет щасте ан нет. это можно поправить или принципиально я не прав? //----------------------------------------------------------------------------- // получение адреса EEPROM //----------------------------------------------------------------------------- unsigned long GetAdr (unsigned char y) { unsigned char ucX, ucY; unsigned short usX, usY; unsigned long ulX; // преобразуем в BCD usX = 0; usY = y; usX = __bcd_add_short(usX, usY); // берём первый индекс ucX = (usX >> 4); // берём второй индекс ucY = usX & 0x0f; // берём адрес ulX = (unsigned long) &EEPROM2->YearIntegr[ucX][ucY]; return ulX; }; //-----------------------------------------------------------------------------