| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Математика с дробни числа в CodevisionAVR http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=3823 |
Страница 1 от 1 |
| Автор: | Ugeen [ Вто Мар 06, 2007 10:54 am ] |
| Заглавие: | Математика с дробни числа в CodevisionAVR |
Колеги,нямам достатъчно опит с математиката в С.Реших да си поиграя с една ATMEGA8.Свързал съм едно LCD и изпробвах доста от библиотеките и функциите на CodevisionAVR.Не мога да разбера тези контролери изобщо могат ли да смятат дробни числа.Пробвах функциите ftoa,sprintf в хиляда варианта ,задавах променливи от типа float и int ,но така и не мога да получа верен резултат.Функциите ми извеждат само цялото число ,а това което е след запетаята са нули.Примерно числото 123,456 се извежда като 123,000.Къде според вас е проблема. |
|
| Автор: | bobyk [ Вто Мар 06, 2007 1:01 pm ] |
| Заглавие: | |
Ми няма проблем, ти си нещо в грешка, постни код да видим. А иначе аз печатам на LCDто така lcd_puts(mystr); |
|
| Автор: | Ugeen [ Вто Мар 06, 2007 1:10 pm ] |
| Заглавие: | |
Примерно: 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 |
|
| Автор: | VSU [ Вто Мар 06, 2007 1:19 pm ] |
| Заглавие: | |
A слу4айно да си забравил да вкл опцията за scanf i printf в project configa да са за float temp=234,552; <<<-----СЛОЖИЛ СИ ЗАПЕТАЙКА ВМЕСТО ТОЧКА |
|
| Автор: | Ugeen [ Вто Мар 06, 2007 1:22 pm ] |
| Заглавие: | |
включих само тази за sprintf |
|
| Автор: | Ugeen [ Вто Мар 06, 2007 1:26 pm ] |
| Заглавие: | |
Опитвам се да разделя две числа ,но пак ми дава само цялото число ,а другото са нули.Примерно същия код само че temp=254/195; ми дава само 1.000 |
|
| Автор: | Ugeen [ Вто Мар 06, 2007 1:28 pm ] |
| Заглавие: | |
Да ,с точката стана изведе ми и другата част.Признавам го за грешка,но със сметките не иска ,пак извейда цялото число |
|
| Автор: | VSU [ Вто Мар 06, 2007 1:31 pm ] |
| Заглавие: | |
а това го за пиши ТАКА temp=254.0/195.0; или temp=254. / 195. ; |
|
| Автор: | bobyk [ Вто Мар 06, 2007 1:31 pm ] | ||
| Заглавие: | |||
float temp; char mystr[16]; temp=123.4567; ftoa(temp, 6, mystr); lcd_clear(); lcd_puts(mystr); десетичната точка е точка а не запетайка;)
|
|||
| Автор: | bobyk [ Вто Мар 06, 2007 1:33 pm ] |
| Заглавие: | |
Брей колко сте бързи, докато напиша 2 реда и сте направили 10 пшоста Няма лошо |
|
| Автор: | Ugeen [ Вто Мар 06, 2007 1:36 pm ] |
| Заглавие: | |
Ако може пиши нещо за сметките,защо пак се извежда цялото число,а другото са 000.Много е интересно това което ми изпрати,с коя програма го направи ,ако не е тайна. |
|
| Автор: | Ugeen [ Вто Мар 06, 2007 1:39 pm ] |
| Заглавие: | |
Най-после ,заработи.Много съм ти благодарен.Два дена си бих главата |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|