Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 22.07.2013, 16:00  
ua3rad
Временная регистрация
 
Регистрация: 04.02.2013
Сообщений: 78
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ua3rad на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

txt1:= 'VOLTAGE=';

buff:= ADC_Read (0);
U:= buff*5/1023;
FloatToStr(U, txt4);
LCD_Out(1,1,txt1+txt4+'V');

на экране (VOLTAGE=0.15151V)
Реклама:
ua3rad вне форума  
Непрочитано 22.07.2013, 18:16  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Так я и думал, что с числом ничего не происходит. Используйте sprintf для форматирования вывода.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 22.07.2013, 21:56  
ua3rad
Временная регистрация
 
Регистрация: 04.02.2013
Сообщений: 78
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ua3rad на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

в микропаскале нет такой функции
ua3rad вне форума  
Непрочитано 22.07.2013, 22:03  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,951
Сказал спасибо: 2,547
Сказали Спасибо 11,840 раз(а) в 5,933 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Значит, искусственно. Умножить на 1000, присвоить значение целой переменной, округлить. Разделить 1000 с присвоением "плавающей" переменной. Незначащие нули рисовать не будет.
А что делать, если нету? Наслаждаться извращениями.

ПС. Я бы сделал так.

INTU:= buff*500/1023;
FloatToStr(INTU/100.0, txt4);

Пардоньте, ежели чего не так, с Паскалем стараюсь дела не иметь, только по большой нужде.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.

Последний раз редактировалось akegor; 22.07.2013 в 22:36.
akegor вне форума  
Непрочитано 22.07.2013, 22:23  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Сообщение от ua3rad Посмотреть сообщение
в микропаскале нет такой функции
Значит, нужно было иначе формулировать этот вопрос:
Сообщение от ua3rad Посмотреть сообщение
Есть ли какая нибудь функция или процедура в mikroPascale или в mikroC для ...

Паскалем для АВР не пользуюсь, так как его обсудить не с кем.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 23.07.2013, 08:54  
ua3rad
Временная регистрация
 
Регистрация: 04.02.2013
Сообщений: 78
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ua3rad на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Спасибо за совет!!!
ua3rad вне форума  
Непрочитано 23.07.2013, 09:39  
ua3rad
Временная регистрация
 
Регистрация: 04.02.2013
Сообщений: 78
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ua3rad на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Все получилось.
var
txt4 : array[9] of char;
U_txt : array[9] of char;
i,h: byte;
buff: word;
U: real;

buff:= ADC_Read (0);
U:= buff*5/1023;

// Округляем до сотых----------------------------
U:= Ceil(U*100)/100;
FloatToStr(U, txt4);
h:= length (txt4);
for i:=0 to h-4 do U_txt[i]:= txt4[i];
//---------------------------------------------------------------------
ua3rad вне форума  
Непрочитано 23.07.2013, 13:16  
ua3rad
Временная регистрация
 
Регистрация: 04.02.2013
Сообщений: 78
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ua3rad на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Осваиваю LCD. Столкнулся с такой проблемой?
var
txt3 : array[5] of char;
ADC_txt : array[4] of char;
i,j: byte;
buff: word;

txt2:= 'Kod ADC=';
buff:= ADC_Read (0);
WordToStr(buff, txt3); (например '','','3','1','2','' )


if buff ‹ 10 then k:= 4 else
if buff ‹ 100 then k:= 3 else
if buff ‹ 1000 then k:= 2 else k:= 1;
j:= k;
for i:= 0 to 4 do
begin
if i‹= 4-k then
begin
ADC_txt[i]:= txt3[j];
inc(j);
end
else ADC_txt[i]:= '';
end;

теперь ('3','1','2','','','')

LCD_Out(2,1,txt2+ADC_txt);
Если код ацп увеличивается, то результат (Kod ADC=1 увеличиваем Kod ADC=12 увеличиваем Kod ADC=123 увеличиваем Kod ADC=1023 увеличиваем)-все хорошо
Когда я начинаю уменьшать код, то (Kod ADC=1023 уменьшаем Kod ADC=8903 уменьшаем Kod ADC=0023 уменьшаем), т.е. было число 4-х значное, потом стало 3-х значное, а последний знак от 4-х значного числа остался и т.д.

как это исправить
ua3rad вне форума  
Непрочитано 23.07.2013, 13:27  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

ua3rad, я, признаться, не писал про "умножить на сто / отбросить др.часть / разделить на сто" чтобы не обидеть, и вдруг - "спасибо за совет"... программу из топора пишете?
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 23.07.2013, 13:55  
ua3rad
Временная регистрация
 
Регистрация: 04.02.2013
Сообщений: 78
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ua3rad на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Спасибо за то, что откликнулись. как придумал, так и написал код. Я просто осваиваю LCD. Вывожу на индикатор напряжение с АЦП. Может вопросы и тупые, так форум для вопросов и ответов создан.
ua3rad вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45


Часовой пояс GMT +4, время: 00:25.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot