forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
Prosim o vysvetlenie casti kodu

 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Microchip
 
lubos55
Přispěvatel
Přispěvatel


Založen: 29.5.2011
Příspěvky: 22

PříspěvekZaslal: 24 leden 2015, 0:12    Předmět: Prosim o vysvetlenie casti kodu Citovat

Ahojte,prosim moze mi niekto polopate vysvetlit cast kodu konkr.prevod na ascii znak

ADC_Value = 256;
DisplayVolt = ADC_Value ;
volt[0] = DisplayVolt/1000 + 48;
volt[1] = (DisplayVolt/100)%10 + 48;
volt[3] = (DisplayVolt/10)%10 + 48;
Lcd_Out(2,5,volt);

nejak to delenie a zvysok nemozem pochopit.Dal som si ako priklad ADC hodnotu 256 a ze si to na papier napisem ,ako sa to prevedie na display no nejak mi to nejde do hlavy.Dakujem
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Anonymní






PříspěvekZaslal: 24 leden 2015, 11:58    Předmět: Citovat

Zdá se to být jednoduché:
- první dva řádky přidělí hodnotu a převedou do proměnné DisplayVolt
- třetí řádek si vytáhne z této proměnné tisíce které tam teď nebudou
- čtvrtý řádek stovky
- a pátý desítky
- pak se to vypíše na LCD - druhý řádek od pátého znaku

Z příkladu není není jasný typ proměnných, předpokládám že DisplejVolt je byte, volt je určitě string.

%10 znamená, že z výsledku dělení si bere jenom číslo na řádu jednotek
a + 48 je ofset mezi hodnotou čísla a jeho adresou v tabulce ASCII

Divné je, že 256 nemá tisíce (zde bude nula), do řetězce volt se zapisují číslice na 1,2 a 4té místo a chybí jednotky. Můžu jenom domýšlet, že na 3. místě má být desetinná tečka a celý výpočet m.j. dělí ADC_Value stovkou.

Stačí?
Návrat nahoru
 

 
MiloPS3
Profesionál
Profesionál


Založen: 24.12.2008
Příspěvky: 897
Bydliště: LAZNE KYNZVART

PříspěvekZaslal: 24 leden 2015, 12:05    Předmět: Citovat

me to taky nejak nejde do hlavy ,nema to bejt nejak takle ?
kód:
unsigned int8   volt[5],i;
unsigned int16   ADC_Value,DisplayVolt;

ADC_Value = 256;
DisplayVolt = ADC_Value ;            // DisplayVolt =256
volt[0] = DisplayVolt/1000 + 48;      //volt[0] = 256/1000=dec 0+48=ascii 0
volt[1] = (DisplayVolt/100)%10 + 48;   //volt[1] = 256/100=2.56 %10 vycleni nejkrajnejsi cislici z prava=dec 2 +48=ascii 2
volt[2] = (DisplayVolt/10)%10 + 48;    //volt[2] = 256/10=25.6 %10 vycleni nejkrajnejsi cislici z prava=dec 5 +48=ascii 5
volt[3] = (DisplayVolt/1)%10 + 48;       //volt[3] = 256/1=256 %10 vycleni nejkrajnejsi cislici z prava=dec 6 +48=ascii 6

for(i=0;i<4;i++)
{
   if(!(volt[i]==0x30))Lcd_Out(volt[i]);
}


PS: nevim jak funguje funkce Lcd_Out...

EDIT: aa nekdo me predbeh nez sem to sesmolil..
EDIT2:
citace:
Divné je, že 256 nemá tisíce
mozna strelil cislo od boku nebo ma 10b rozliseni AD a pocita s tim,nebo se preklep
_________________
PIC,ASM / C , Mplab + CCS C Compiler
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
MiloPS3
Profesionál
Profesionál


Založen: 24.12.2008
Příspěvky: 897
Bydliště: LAZNE KYNZVART

PříspěvekZaslal: 24 leden 2015, 12:17    Předmět: Citovat

kód:
for(i=0;i<4;i++)
{
   if(!(volt[i]==0x30))Lcd_Out(volt[i]);
}
tak tohle je blbost, kdyz bude 0 kdekoliv v cisle tak ti ji nevipise , takze takle nee
_________________
PIC,ASM / C , Mplab + CCS C Compiler
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
lubos55
Přispěvatel
Přispěvatel


Založen: 29.5.2011
Příspěvky: 22

PříspěvekZaslal: 24 leden 2015, 12:21    Předmět: Citovat

Ahojte,dakujem ano 256 som len strelil pre potrebu mikroc prostredia.Ked som tam nechal iba aby tam ostala hodnota z ad prevodu tak pri krokovani v mikroc mi to ostane na ad prevode.Ostatne si anonym presne domyslel a uz tomu zacinam chapat.Este mi celkom hlave nebere to %10, chcelo by to asi konkretny priklad.Dakujem
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
MiloPS3
Profesionál
Profesionál


Založen: 24.12.2008
Příspěvky: 897
Bydliště: LAZNE KYNZVART

PříspěvekZaslal: 24 leden 2015, 12:25    Předmět: Citovat

sem ti to tam napsal
%10 ti vycleni prvni celou cistici z prava
256/10=25.6 %10=5 -> je prvni cela cislice z prava, kdyz das %100 tak to bude 2 , chapeme ?

_________________
PIC,ASM / C , Mplab + CCS C Compiler
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
lubos55
Přispěvatel
Přispěvatel


Založen: 29.5.2011
Příspěvky: 22

PříspěvekZaslal: 24 leden 2015, 12:32    Předmět: Citovat

Milo,dakujem uz tomu zrejme chapem,idem sa stym pasovat.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Microchip Časy uváděny v GMT + 2 hodiny
 
Strana 1 z 1
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2018 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)