Mit problem er at jeg har en værdi (16 bit) som skal skrives ud på et Lcd
Jeg kender to måder man kan løse dette problem på, den ene er med division med 10, den anden er hvor man laver en form for tæller som deler værdierne ud på de 5 pladser.
Problemet er at begge metoder er tids krævende og jeg har ikke den tid til rådighed, så det jeg søger er en simpel og hurtig rutine til at konverterer fra hex til "dec" .Det skal siges at jeg bruger en pic16f877 så det med at divider tager 225 IC
Jeg ved at det kan være svært at give en form for hint når man ikke kender koden men jeg ville lige prøve
De kunne evt. lave en trabvel med værdien for hver bit. og lade PIC kredsen finde ud af om hvilke bit der er aktive og derved lægge dem sammen. Men det kommer jo an på hvordan Deres resultat skulle se ud. Men det er en idé. og ret simple at programmere.
Med venlig hilsen Thias Russell
"Søren" skrev i en meddelelse news:XGfOa.3776$ snipped-for-privacy@news.getnet.dk...
divlow EQU 0x14 ; used for 16bit calculating divhigh EQU 0x15 ; used for 16bit calculating
;********************************************************************** add16 ; add a 16 bit value divhigh,divlow movf divlow, w ; to tmr0high,tmr0low addwf tmr0low, f ; movf divhigh, w ; btfsc STATUS, C ; incfsz divhigh, W ; addwf tmr0high, f ; Carry Set on overflow return ; ;********************************************************************** sub16 ; subtract a 16 bit value divhigh,divlow movf divlow, w ; from tmr0high,tmr0low subwf tmr0low, f ; movf divhigh, w ; btfss STATUS, C ; incfsz divhigh, W ; subwf tmr0high, f ; Carry Clear on overflow return ; ;********************************************************************** bin2bcd ; converts 16bit number to 4 bcd values clrf digit1000 ; init digits clrf digit100 ; clrf digit10 ; clrf digit1 ;
Jeg har ikke modsat mig assembler, jeg skriver bare ikke i PIC assembler og jeg tror ikke min tilsvarende routine i AVR assembler ville være et godt eksempel, når der spørges efter routiner til PIC. Pseudo koden er noget lettere at læse end en ukendt assembler.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.