Отговори на тема  [ 12 мнения ] 
Математика с дробни числа в CodevisionAVR 
Автор Съобщение
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пон Яну 16, 2006 5:20 pm
Мнения: 122
Местоположение: гр. Горна Оряховица
Мнение Математика с дробни числа в CodevisionAVR
Колеги,нямам достатъчно опит с математиката в С.Реших да си поиграя с една ATMEGA8.Свързал съм едно LCD и изпробвах доста от библиотеките и функциите на CodevisionAVR.Не мога да разбера тези контролери изобщо могат ли да смятат дробни числа.Пробвах функциите ftoa,sprintf в хиляда варианта ,задавах променливи от типа float и int ,но така и не мога да получа верен резултат.Функциите ми извеждат само цялото число ,а това което е след запетаята са нули.Примерно числото 123,456 се извежда като 123,000.Къде според вас е проблема.


Вто Мар 06, 2007 10:54 am
Профил
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Пон Яну 09, 2006 11:32 am
Мнения: 276
Местоположение: Kozloduy
Мнение 
Ми няма проблем, ти си нещо в грешка, постни код да видим. А иначе аз печатам на LCDто така

lcd_puts(mystr);


Вто Мар 06, 2007 1:01 pm
Профил ICQ
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пон Яну 16, 2006 5:20 pm
Мнения: 122
Местоположение: гр. Горна Оряховица
Мнение 
Примерно:
float temp;
char lcd_buffer[33];
lcd_init(16);
temp=234,552;
sprintf(lcd_buffer ,"%3.3f",temp);
lcd_clear();
lcd_puts(lcd_buffer);


извежда ми 234.000,къде е 552


Вто Мар 06, 2007 1:10 pm
Профил
Ранг: Напреднал
Ранг: Напреднал

Регистриран на: Нед Авг 14, 2005 1:08 pm
Мнения: 433
Местоположение: Казанлък
Мнение 
A слу4айно да си забравил да вкл опцията за scanf i printf в project configa да са за float temp=234,552; <<<-----СЛОЖИЛ СИ ЗАПЕТАЙКА ВМЕСТО ТОЧКА


Последна промяна VSU на Вто Мар 06, 2007 1:26 pm, променена общо 1 път



Вто Мар 06, 2007 1:19 pm
Профил ICQ
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пон Яну 16, 2006 5:20 pm
Мнения: 122
Местоположение: гр. Горна Оряховица
Мнение 
включих само тази за sprintf


Вто Мар 06, 2007 1:22 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пон Яну 16, 2006 5:20 pm
Мнения: 122
Местоположение: гр. Горна Оряховица
Мнение 
Опитвам се да разделя две числа ,но пак ми дава само цялото число ,а другото са нули.Примерно същия код само че temp=254/195; ми дава само 1.000


Вто Мар 06, 2007 1:26 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пон Яну 16, 2006 5:20 pm
Мнения: 122
Местоположение: гр. Горна Оряховица
Мнение 
Да ,с точката стана изведе ми и другата част.Признавам го за грешка,но със сметките не иска ,пак извейда цялото число


Вто Мар 06, 2007 1:28 pm
Профил
Ранг: Напреднал
Ранг: Напреднал

Регистриран на: Нед Авг 14, 2005 1:08 pm
Мнения: 433
Местоположение: Казанлък
Мнение 
а това го за пиши ТАКА temp=254.0/195.0; или temp=254. / 195. ;


Вто Мар 06, 2007 1:31 pm
Профил ICQ
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Пон Яну 09, 2006 11:32 am
Мнения: 276
Местоположение: Kozloduy
Мнение 
float temp;
char mystr[16];
temp=123.4567;
ftoa(temp, 6, mystr);
lcd_clear();
lcd_puts(mystr);

десетичната точка е точка а не запетайка;)


Прикачени файлове:
Clipboard05.gif
Clipboard05.gif [ 7.13 KiB | Прегледано 2207 пъти ]
Вто Мар 06, 2007 1:31 pm
Профил ICQ
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Пон Яну 09, 2006 11:32 am
Мнения: 276
Местоположение: Kozloduy
Мнение 
Брей колко сте бързи, докато напиша 2 реда и сте направили 10 пшоста
Няма лошо ;)


Вто Мар 06, 2007 1:33 pm
Профил ICQ
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пон Яну 16, 2006 5:20 pm
Мнения: 122
Местоположение: гр. Горна Оряховица
Мнение 
Ако може пиши нещо за сметките,защо пак се извежда цялото число,а другото са 000.Много е интересно това което ми изпрати,с коя програма го направи ,ако не е тайна.


Вто Мар 06, 2007 1:36 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пон Яну 16, 2006 5:20 pm
Мнения: 122
Местоположение: гр. Горна Оряховица
Мнение 
Най-после ,заработи.Много съм ти благодарен.Два дена си бих главата


Вто Мар 06, 2007 1:39 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 12 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни