Отговори на тема  [ 4 мнения ] 
Исчисление на процент от зададено напрежение и исписването 
Автор Съобщение
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Чет Авг 30, 2007 2:14 pm
Мнения: 118
Мнение Исчисление на процент от зададено напрежение и исписването
Искам да исчисля процент от максимално напрежение на батерия и да го испиша на дисплей в ascii знаци
Махимума на ADC числото е toascii=24 (при 13,9V);

int toascii,percent;
unsigned char Niwo_Bat[4];

percent=(toascii*100)/24; ////процента на едно число от друго;
if(percent==100){
Niwo_Bat[0]='1',Niwo_Bat[1]='0',Niwo_Bat[2]='0';
}
else {
Niwo_Bat[0]=0x20; ////space
Niwo_Bat[1]=(percent/10); //// взимам десетиците, като цифрите след десетичната запетая(ще я има ако е float) от делението се изяждат от INT
////на percent и unsigned char на Nivo_Bat
Niwo_Bat[2]=percent-(Signal_Number[1]*10);////взимам и едениците като от цялото число изваждам десетиците
Niwo_Bat[1]+=0x30; /// към ASCII на десетиците
if(Niwo_Bat[1]=='0')Niwo_Bat[1]=0x20; ////ако имаме '0' пишем space
Niwo_Bat[2]+=0x30;/// кум ASCII на едениците
Niwo_Bat[3]='%';
};
Цялата дивотия се състои в това че работи, а аз не знам по добър начин за тази сметка. Как да преобразивам 65 в вид 0x36,0x35


Нед Окт 14, 2007 9:42 am
Профил
Online
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение 
Е убий ме но не разбирам какво трябва да направиш, може ли да го изразиш по разбираемо.


Нед Окт 14, 2007 12:17 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Юли 22, 2006 9:50 pm
Мнения: 1638
Мнение 
Преобразуваш първо числото от HEX->BCD :принерно FFFF ->65535.След това към всеки разряд добавяш Н'30' -> 0x06+0x30=0x36;0x05+0x30=0x35; и получените чиала са ти ASCII символите за ЛСД то.


Нед Окт 14, 2007 12:28 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Чет Авг 30, 2007 2:14 pm
Мнения: 118
Мнение 
Налага ми се да премеря напрежението на един акумолатор и да дам на дисплей процента на заряда и разряда (при 100%=13,9V а при 0% ==10,9V)
Така е защото този който следи акумолатора да не се замисля при колко волта какво е състоянието на заряда.
Получавам процентите 0x64==100%, но за да се прати на дисплей се иска "1","0","0","%" (0x31,0x30,0x30,0x25)
Цитат:
The prototypes for these functions are placed in the file bcd.h, located in the ..\INC subdirectory. This file must be #include -ed before using the functions.

unsigned char bcd2bin(unsigned char n)


Converts the number n from BCD representation to it's binary equivalent.

unsigned char bin2bcd(unsigned char n)

Converts the number n from binary representation to it's BCD equivalent.

The number n values must be from 0 to 99.
Да така става
.....Направих си труда да погледна библиотеката на bcd.lib и се оказа доста компактна-противно на очакванията ми.


Нед Окт 14, 2007 1:34 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 4 мнения ] 

Кой е на линия

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


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

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