Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Цифровые сигнальные процессоры (DSP) и их применение»
проблема с библиотечной функцией
Отправлено
AP
09 декабря 2008 г. 17:58
Среда CSS 3.3
Процессор F2811
понадобилось переписать функцию в файле F28xileg_vdc.c
void F28X_ileg2_dcbus_drv_read(ILEG2DCBUSMEAS *p)
взял ее исходный код из каталога с28\lib\drvlib\src закинул в свой файл с другим названием и подключил к проекту
в pmsm3_1.h я переключаюсь между ними
ILEG2SHIFTMEAS ilg2_vdc1 = ILEG2SHIFTMEAS_DEFAULTS;
//ILEG2DCBUSMEAS ilg2_vdc1 = ILEG2DCBUSMEAS_DEFAULTS;
в первом случае токи считаются ок
во втором идет переполнение в умножении на GAIN
проблема в следующем месте
int dat_q15;
long tmp;
/* Wait until ADC conversion is completed */
while (AdcRegs.ADCST.bit.SEQ1_BSY == 1)
{};
dat_q15 = AdcRegs.ADCRESULT0^0x8000; /* Convert result to Q15 (bipolar signal) */
tmp = (long)(p->Imeas_a_gain*dat_q15);
проблема появляется в результате переполнения при умножении двух int
я ее разрешил убрав произведение из скобок
tmp = (long)p->Imeas_a_gain*dat_q15;
Собственно вопрос как тогда грамотно скомпилять их библиотеку если в искходнике такие грабли?
Составить ответ
|
Вернуться на конференцию
Ответы
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
поделите двойку на единицу:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru