Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Исчисление на процент от зададено напрежение и исписването
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=4959
Страница 1 от 1

Автор:  Комбинатор [ Нед Окт 14, 2007 9:42 am ]
Заглавие:  Исчисление на процент от зададено напрежение и исписването

Искам да исчисля процент от максимално напрежение на батерия и да го испиша на дисплей в 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

Автор:  ToHu [ Нед Окт 14, 2007 12:17 pm ]
Заглавие: 

Е убий ме но не разбирам какво трябва да направиш, може ли да го изразиш по разбираемо.

Автор:  Ки4о [ Нед Окт 14, 2007 12:28 pm ]
Заглавие: 

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

Автор:  Комбинатор [ Нед Окт 14, 2007 1:34 pm ]
Заглавие: 

Налага ми се да премеря напрежението на един акумолатор и да дам на дисплей процента на заряда и разряда (при 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 и се оказа доста компактна-противно на очакванията ми.

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/