|
|
  |
Перекодировка для ЖКИ |
|
|
|
Dec 22 2009, 11:38
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 21-12-09
Пользователь №: 54 383

|
извините, temperaturefin-long
все типы переменных-long
|
|
|
|
|
Dec 22 2009, 12:54
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(goodking @ Dec 22 2009, 14:38)  извините, temperaturefin-long все типы переменных-long buf должен быть не лонг, а указатель на char[] Попробуйте char buf[10] (ну или 20, 30 - сколько надо символов) Цитата(rezident @ Dec 22 2009, 15:10)  В языке Си имеются и готовые функции для преобразования чисел в строку символов. Почитайте какой-нибудь "букварь" по языку Си наконец. Дык эта... sprintf вроде как раз это и делает. Только ему указатель на правильный буфер надо подсунуть Цитата sprintf(buf,"%d",temperaturefin);
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Dec 22 2009, 13:10
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 21-12-09
Пользователь №: 54 383

|
Цитата(MrYuran @ Dec 22 2009, 16:54)  buf должен быть не лонг, а указатель на char[] Попробуйте char buf[10] (ну или 20, 30 - сколько надо символов)
Дык эта... sprintf вроде как раз это и делает. Только ему указатель на правильный буфер надо подсунуть нет, buf у меня как раз обьявлен char buf[10]; но все -равно на выходе какая-то ерунда выходит, 0x10 "0l"
|
|
|
|
|
Dec 22 2009, 13:35
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 21-12-09
Пользователь №: 54 383

|
Цитата(MrYuran @ Dec 22 2009, 17:26)  а "HelloWorld" выводит? если константой забить, причём прямо в буфер Выводит!
|
|
|
|
|
Dec 22 2009, 15:47
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(demiurg_spb @ Dec 22 2009, 19:40)  А причём тут BCD, простите? А что по-вашему делает sprintf при указании формата %d, как не BCD + конвертация в ASCII? Цитата(demiurg_spb @ Dec 22 2009, 19:40)  Ему надо просто коды АЦП пересчитать в температуру, а её отобразить в виде строки на дисплее. Ну да. Загвоздка была как раз в отображении. Цитата(goodking @ Dec 22 2009, 20:29)  Все, разобрался, всем большое спасибо!  Разобрались - хорошо. Только нужно огласить причину, чтобы у отвечающих не пропало желание в следующий раз вновь помогать вам.
|
|
|
|
|
Dec 22 2009, 16:06
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 21-12-09
Пользователь №: 54 383

|
Цитата(rezident @ Dec 22 2009, 18:47)  А что по-вашему делает sprintf при указании формата %d, как не BCD + конвертация в ASCII? Ну да. Загвоздка была как раз в отображении. Разобрались - хорошо. Только нужно огласить причину, чтобы у отвечающих не пропало желание в следующий раз вновь помогать вам. причина была в неверном присвоении типов используемых переменных!
|
|
|
|
|
Dec 23 2009, 07:34
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 21-12-09
Пользователь №: 54 383

|
Цитата(rezident @ Dec 23 2009, 09:53)  Как раз начинать нужно с основ языка, типовых алгоритмов и примитивов. В следующий раз ему понадобиться float на дисплей выводить и sprintf начнет требовать такой размер ОЗУ для стека, которого просто нет в кристалле. Что вы предложите: взять кристалл "пожирнее" или самостоятельно написать простой алгоритм вывода float на индикацию? А что в таком случае надо сделать??
|
|
|
|
|
Dec 23 2009, 09:29
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(goodking @ Dec 23 2009, 10:34)  А что в таком случае надо сделать?? Застрелиться. Цитата(rezident @ Dec 23 2009, 08:53)  Как раз начинать нужно с основ языка, типовых алгоритмов и примитивов. В следующий раз ему понадобиться float на дисплей выводить и sprintf начнет требовать такой размер ОЗУ для стека, которого просто нет в кристалле. Что вы предложите: взять кристалл "пожирнее" или самостоятельно написать простой алгоритм вывода float на индикацию? Вариантов достаточно. Ну если так пойти то начинать надо было с архитектуры MCU, понятиях стек, способы адресации, способы передачи аргументов. Изучить ассемблер хотя бы одного самого примитивного семейства. А уже потом браться за Си  Ну а ещё раньше системы исчисления, форматы чисел, булеву алгебру и т.д. и т.п. Спорить дпльше не вижу смысла. Главное не загубить в человеке желания учиться и саморазвиваться! Остальное приложится!
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|