kodo help!

C

Cleong

Guest
kaip rašyti tuos funkciją MPLAB kodą?

= 256 * B C

D = 0.4882125 *

 
Koks jūsų telefono numeris dydžio (kiek bitų kiekviename numeris) ir formos (integer arba fiksuotą / kintamomis dešimtainis)?

Tok

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Mirkčiojimai" border="0" />
 
Gorgon wrote:

Koks jūsų telefono numeris dydžio (kiek bitų kiekviename numeris) ir formos (integer arba fiksuotą / kintamomis dešimtainis)?Tok
<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Mirkčiojimai" border="0" />
 
Kokie yra įvairių kintamųjų svyruoja skelbimą?Manau, kad ne viskas 0-500?

Koks yra jūsų rezoliucija / D converter?(Norėčiau manyti, kad B yra ši vertė)

Tok

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Mirkčiojimai" border="0" />
 
Gorgon wrote:

Kokie yra įvairių kintamųjų svyruoja skelbimą?
Manau, kad ne viskas 0-500?Koks yra jūsų rezoliucija / D converter?
(Norėčiau manyti, kad B yra ši vertė)Tok
<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Mirkčiojimai" border="0" />
 
Cleong,
Nenaudokite surinkėjas, naudokite C ir visų bėdų bus gone!

 
Labas
= 256 * B C

Dėl šios U HAV rašyti Sub įprastas dauginimo.Tai galima padaryti naudojant eilės to.Jei UR vertė yra nustatoma 256 tada ir nereikia, noriu padauginti ją.Paprasčiau tariant du nuliai į dešinę.

Pavyzdžiui, jei B = 0x23, tai 256 B *, bus 0x2300, kad yra du nulio į dešinę.Tada įpilama C ur atsakyti.kai C = 0x45, u will get = 0x2345.

D = 0.4882125 *

Pašalinti kablelio ir imtis hex value, padauginkite jį ir konvertuoti atgal į dešimtainį ir tada įdėti dešimtųjų.

Pavyzdys: UR lygtis 0.4882125, nuėmus punkto u get 4882125, imtis HEX rankiniu būdu, 4882125 = 0x4A7ECD
pakeisti UR lygtys
D = A * 0x4A7ECD
Tada dauginti u get 0xA436A3441
Konvertuoti jį į kablelio, u get 44080706625
Tada įdėkite kablelio 7 vietų, iš dešinės, tada u get 44080,706625

tai ur atsakymas

Žinoma Asamblėja programavimo kalba yra labai sunku

ačiū.

 
Oho, jums sekasi.

Žr 500/1024, gali būti sumažinta iki 125/256.

125 = b'01111101 '= b'10000000 "- b'00000100" b'00000001' = 128-4 1

Norėčiau rašyti taip:

Kodasrrf ADRESH, W; Pirmosios dauginti, 128 = 256>> 1

movwf ADCVALH

rrf ADRESL, W

movwf ADCVALM

movf ADRESH, W; Dabar pridėkite vieną kartą

addwf ADCVALM, f

btfsc STATUSAS, C, vežti per iš baitas į baitą

incf ADCVALH, f

movf ADRESL, W

movwf ADCVALL

rlf ADRESL, F; Dabar dauginti iš keturių

rlf ADRESH, f

rlf ADRESL, W

rlf ADRESH, f

subwf ADCVALL, F; Atimti 24 bitų skaičius

movf ADRESH, W

btfss STATUSAS, C, vežti per iš baitas į baitą

addlw 0x01; vietoj atimant 1, pridėti dar vieną, ką mes atimti

subwf ADCVALM, f

btfss STATUSAS, C, vežti per iš baitas į baitą

decf ADCVALH, F; Dabar Kelvinas yra ADCVALH: ADCVALM

 
Cleong,
Kiti Methode konvertuoti ADC duomenų temperatūra naudoti Tabuliacija, ADCvalue xxx = yyy ° K

 
movlw B'100000000 "; 256 = 100000000
andwf ADRESL, ADCvalue

Aš naudoju andlw (Am I right?) už ADCvalue = 256 * adresh adresl
po to man reikia imtis ADCvalue daugintis su 0.48828125
nuo ADCvalue yra dvejetainiu pavidalu,
gali tiesiogiai daugintis su dešimtainis skaičius?Parašytas po 59 sekundžių:jonw0224 rašė:

Oho, jums sekasi.Žr 500/1024, gali būti sumažinta iki 125/256.125 = b'01111101 '= b'10000000 "- b'00000100" b'00000001' = 128-4 1Norėčiau rašyti taip:Kodasrrf ADRESH, W; Pirmosios dauginti, 128 = 256>> 1

movwf ADCVALH

rrf ADRESL, W

movwf ADCVALM

movf ADRESH, W; Dabar pridėkite vieną kartą

addwf ADCVALM, f

btfsc STATUSAS, C, vežti per iš baitas į baitą

incf ADCVALH, f

movf ADRESL, W

movwf ADCVALL

rlf ADRESL, F; Dabar dauginti iš keturių

rlf ADRESH, f

rlf ADRESL, W

rlf ADRESH, f

subwf ADCVALL, F; Atimti 24 bitų skaičius

movf ADRESH, W

btfss STATUSAS, C, vežti per iš baitas į baitą

addlw 0x01; vietoj atimant 1, pridėti dar vieną, ką mes atimti

subwf ADCVALM, f

btfss STATUSAS, C, vežti per iš baitas į baitą

decf ADCVALH, F; Dabar Kelvinas yra ADCVALH: ADCVALM

 
Lengviausias būdas padauginti su 0.48828125 yra ją padalyti į 125/256.Gerkite 16 bitų ADC vertę padauginti su 125 ir pašalinti žemiausias baitas (= / 256).

Pavyzdys:
Jūsų vertė yra 200 (00C8h) * 125 = 25000 (61A8) Man tada buvo įtraukti į šį 80h, tik mažinti dalijant Klaida gaunant 61A8 80 = 6228 (/ 256 nukapoti baitų) Atsakymas yra tada 0062h ar 98 dešimtainių .

Jei norite tai padaryti su realiųjų skaičių 200 * 0,48828125 = 97,65625.Not bad!

Tok

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Mirkčiojimai" border="0" />
 
Dont pasakykite jam, kad jo darbas
ar jis bus mokytis nieko!

Tai mano patarimas: D

<img src="http://www.edaboard.com/images/smiles/icon_arrow.gif" alt="Arrow" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_idea.gif" alt="Idėja" border="0" />
 
Citata:

Dont pasakykite jam, kad jo darbas

ar jis bus mokytis nieko!
 
jonw0224

Dėkojame už ur padėti,
Tikrai bus praleisti laiką (kol aš tikrai suprantu), ką ir parašyti man.

[quote
Galbūt jis išmoks, matydamas kodas?Kaip jis nori išmokti, jei niekas padeda?Aš ne tik skaityti apie surinkimo, nors išmokyti, o vėliau aš perskaičiau daugiau tada aš geriau.Su Fondo teikiama parama galiu statyti ant jo.

[/ quote]ir U yra apeigos,
I need someone vadovas man 1st step.
TK daug .....<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 
Labas,
Kodėl rašote kodą C kompiliatorių.Dabar nėra daugiau žmonių gali suprasti surinkti kalba.

 
Cleong,

Sakiau kodas buvo nepatikrintas.Ačiū kitą plakatą, kuris nurodė mano kodą negalėtų dirbti nelyginis skaičius, turiu pataisyti savo kodą.

Kodas

bcf STATUS, C; Išvalyti C

rrf ADRESH, W; Pirmosios dauginti, 128 = 256>> 1. WREG = ADRESH / 2, C = LSB iš ADRESH

movwf ADCVALH, dabar, kad mes einame į ADCVALH, efektyviai multipling 256

rrf ADRESL, W; WREG = (LSB iš ADRESH) * 128 ADRESL / 2, iš esmės tai

; baigia padalinti iš 2 ir 10 bitų skaičius

movwf ADCVALM; pereiti ADCVALM, efektyviai dauginant iš 256

clrf ADCVALL; Rūpinkitės vykdyti

rrf ADCVALL, f

movf ADRESH, W; Dabar pridėkite ją vieną kartą, WREG = ADRESH

addwf ADCVALM, F; Pridėti ADRESH į ADCVALM

btfsc STATUSAS, C, vežti per iš baitas į baitą, jei be rezultatų vykdyti

incf ADCVALH, F; tada prieaugio ADCVALH

movf ADRESL, W

addwf ADCVALL

rlf ADRESL, F; dabar padauginti iš keturių. klausimų apie komandas, kad nes dabar

, C = MSB iš ADRESL

rlf ADRESH, F, ir dabar LSB iš ADRESH = C = MSB iš ADRESL

rlf ADRESL, W; Do It Again, bet noriu WREG išlaikyti ADRESL kad galiu atimti ją šalia

rlf ADRESH, f

subwf ADCVALL, F; Atimti 24 bitų skaičių, pradėti ADCVALL = ADCVAL - ADRESL

movf ADRESH, W; pasirengti kitam atimtis

btfss STATUSAS, C, vežti per iš baitas į baitą, patikrinkite, ar man reikia skolintis

addlw 0x01; vietoj atimant 1, pridėti dar vieną, ką mes atimti, vietoj

; skolinimosi, pridėkite 1 what I'm about atimti.

; Tai užtrunka mažiau instrukcijos (tai trumpos šukuosenos), kuris yra galimas

, nes labai kandinėti iš ADRESH yra 0.

, Todėl aš neturiu rūpintis kitos overflow

, kad aš turiu rūpintis, jei skolintų

subwf ADCVALM, F; dabar atimti viduryje didelį baitų

btfss STATUSAS, C, vežti per iš baitas į baitą, rūpintis atlikti šiek tiek vėl

decf ADCVALH, F; Dabar Kelvinas yra ADCVALH: ADCVALM, and I'm Done
 
jonw0224 rašė:

Cleong,Sakiau kodas buvo nepatikrintas.
Ačiū kitą plakatą, kuris nurodė mano kodą negalėtų dirbti nelyginis skaičius, turiu pataisyti savo kodą.
Thanks for your help, Yager.
Jei tai nėra tikslinga nustatyti, Please let me know.
Niekas nėra tobulas.Btw, kada gi reikia atsakyti "padės man parašyti šį surinkimas" tampa rašyti į C?-jonathan
 

Welcome to EDABoard.com

Sponsor

Back
Top