реклама на сайте
подробности

 
 
> Это глюк компилятора? (CVAVR), потеря одного параметра
invertor79
сообщение Apr 29 2007, 18:13
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 97
Регистрация: 25-04-06
Из: Краснодар
Пользователь №: 16 451



Писал следующую функцию (выводит измеренное АЦП напр. на индикатор):

Код
void lcd_print_adc_level_volt(uchar y, uchar x)
{
    uchar str[4];
    
    ftoa(ADC_Read(CH_2)*ADC_V, 2, str);
    
    print_string(y, x, str);
    
    print_char(y, x+CHAR_W*4, 'V');
}


в этом случае параметр x всегда равен 0 оказывается, параметр y передается нормально.

Переписал так:
Код
void lcd_print_adc_level_volt(uchar y, uchar x)
{
    uchar str[4];
    uchar temp;

            temp = x;

    ftoa(ADC_Read(CH_2)*ADC_V, 2, str);
    
    print_string(y, temp, str);
    
    print_char(y, temp+CHAR_W*4, 'V');
}


Всё стало работать как надо blink.gif

Такое впечатление, что ftoa портит параметр x, хотя никаким боком его не пользует. От чего это может быть?

P.S. (пользую CVAVR 1.24.8d Prof.)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ReAl
сообщение Apr 29 2007, 19:38
Сообщение #2


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(invertor79 @ Apr 29 2007, 17:13) *
Писал следующую функцию (выводит измеренное АЦП напр. на индикатор):
Код
void lcd_print_adc_level_volt(uchar y, uchar x)
{
    uchar str[4];
    ftoa(ADC_Read(CH_2)*ADC_V, 2, str);
    print_string(y, x, str);
    print_char(y, x+CHAR_W*4, 'V');
}


Такое впечатление, что ftoa портит параметр x, хотя никаким боком его не пользует. От чего это может быть?

P.S. (пользую CVAVR 1.24.8d Prof.)
А ты уверен, что ftoa не 5 байт в массив str[] пишет?
Может, как раз концевой "0" и попадает в x


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
invertor79
сообщение Apr 29 2007, 21:03
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 97
Регистрация: 25-04-06
Из: Краснодар
Пользователь №: 16 451



Цитата(ReAl @ Apr 29 2007, 20:38) *
А ты уверен, что ftoa не 5 байт в массив str[] пишет?
Может, как раз концевой "0" и попадает в x


В точку! Задал str[5], и всё стало нормально.
Ещё раз хелп на кодевижн посмотрел, там нет ничего об этом.
И всё-таки, это глюк компилятора, или так и должно быть (оптимизацию отключал, не помогало)?
Go to the top of the page
 
+Quote Post
singlskv
сообщение Apr 30 2007, 00:16
Сообщение #4


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(invertor79 @ Apr 29 2007, 22:03) *
В точку! Задал str[5], и всё стало нормально.
Ещё раз хелп на кодевижн посмотрел, там нет ничего об этом.
И всё-таки, это глюк компилятора, или так и должно быть (оптимизацию отключал, не помогало)?

это глюк пользователя стандартной С библиотеки
хелп нужно курить не на компилятор а на библиотеку
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 30 2007, 01:07
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(singlskv @ Apr 30 2007, 00:16) *
это глюк пользователя стандартной С библиотеки
хелп нужно курить не на компилятор а на библиотеку

Ничего курить по ни по библиотекам ни по компиляторам не надо - стриг он и в африке стринг - нулем кончается.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
singlskv
сообщение Apr 30 2007, 01:31
Сообщение #6


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(zltigo @ Apr 30 2007, 02:07) *
Ничего курить по ни по библиотекам ни по компиляторам не надо - стриг он и в африке стринг - нулем кончается.

ну все-таки в C вроде как нет типа String smile.gif
так что курить нужно таки в сторону стандартных С библиотек smile.gif

или я чего-то недопонимаю ?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 14:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01412 секунд с 7
ELECTRONIX ©2004-2016