A gana kvailas klausimas dėl C 3 viela nuoseklioji sąsaja

G

glenjoy

Guest
Labas,

Mačiau šį kodą ir įdomu, jei tai tikrai dirba gauti 8 bitų TPĮ pirmuosius duomenis.Prašome rašyti komentarus:

unsigned char read_0831 () (

unsigned char bitų;

CLK = 0;
bit = d_out;
CLK = 1;

grįžti bitų;
)

unsigned int start_read () (

unsigned char i;
unsigned int adc_data;

adc_data = 0;
csel = 0;

for (i = 0; i <8; i ) (

adc_data = adc_data | read_0831 () <<1;
csel = 1;

)

)

1.Ar turinys yra char bitų 1000 000 arba 0000 0001 jeigu d_out lygus vienai.

2.Ar šį kodą teisę?nes aš painioti su pasukti į kairę, jei ji bus uždara, adc_data teisingas išdėstymas bitų iš ADC.

Aš atsiprašau paklausti, bet esu pradedantysis C Aš naudojamas surinkimo programas.

Ačiū.

 
Salam,

Citata:

1.
Ar turinys yra char bitų 1000 000 arba 0000 0001 jeigu d_out lygus vienai.
 
Ar kas nors paaiškinti man kas atsitiks šioje gabalą kodo?

unsigned int start_read () (

unsigned char i;
unsigned int adc_data;

adc_data = 0;
csel = 0;

for (i = 0; i <8; i ) (

adc_data = adc_data | read_0831 () <<1;
csel = 1;

)

)

 
glenjoy, kodas atrodo neveikia.
Kiekvienos įvesties bitų norite perkelti kairėje akumuliatoriaus ir įdėkite į įėjimo bitų į akumuliatorius KALTAI 0.Pabandykite pakeisti šiuo:
adc_data = adc_data | read_0831 () <<1;
šios:
adc_data = (adc_data <<1) | read_0831 ();

Norėdami, kad veiktų, read_0831 () turi grįžti 0 arba 1.

Siekiant aiškumo, tai yra gera idėja įtraukti papildomų skliausteliuose C išraiška pamainomis ir loginius operatorius.Tai taip pat padeda išvengti klaidų, nes C's vyresniškumo kartais stebina.Norėdami atsakyti į antrąjį klausimą, šis pareiškimas:adc_data = adc_data | read_0831 () <<1;yra lygiadc_data = adc_data | (read_0831 () <<1);kuri įdėti įvesties bitų į akumuliatorius KALTAI 1.
Ne tai, ko norite.Kaip galima sužinoti, C, jums daug klausimų.Jums patinka šios svetainės:
http://www.eskimo.com/ ~ scs / C-faq / top.html

Beje, pabrėžti savo kodą ir spauskite "Kodas" mygtuką, kad galėtume peržiūrėti savo wcięć, kaip Sphinx padarė.

 
o ji gera mokymosi tikslais, bet ir laikas kritiškai operacijų Panašios surinkimas yra geresnis pasirinkimas.

 
Labas,

Thanks for the help aš pataisytas kodas:

Kodas:

# include "C: \ kodo \ Tinklalapis \ 0831_lm35 \ 0831_lm35.h"# bit d_out = 0x05.2

# bit CLK = 0x05.3

# bit csel = 0x05.4unsigned char adc_value;

unsigned char read_0831 () (unsigned char bitų;CLK = 0;

bit = d_out;

CLK = 1;grįžti bitų;

)unsigned char start_read () (unsigned char i;

unsigned char adc_data;
adc_data = 0x00;

csel = 0;[color = mėlyna] for (i = 0; i <10; i ) (adc_data = (adc_data <<1) | read_0831 ();[/ color])

grįžti adc_data;

csel = 1;)
 
Laimės jis veikia.Sėkmės mokymosi C.

Kad lengviau skaityti.

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Šypsotis" border="0" />Atrodo, kad "spalvų" žyma neveikia viduje "kodo" žyma.

Bluechem, surinkėjui yra geresnis pasirinkimas, tik jei C kompiliatorių yra prastos optimizavimo.

 
šių dienų kompiliatorius yra labai efektyvus, bet kalba yra tikslas!C yra labai patogi, bet niekada negali pabūti surinkimo greičiu nepriklausomai nuo to, kaip gerai, kad kompiliatorių.

 
C pabūti surinkimo greitis.

Greitis su nuoroda į DERINIMUI kodo ir pakeisti mikrokontrolerów platforma.

Bet, žinoma, C
can't beat surinkimo greitis vykdymo.

Tačiau šių dienų, microcntrollers gaus yra greitesnis ir atminties dydis yra didelis, ir žmonės nenori, kad jų projektai būtų padaryta greitai.

Manau C patarimai,
buvau surinkimo naudotojas taip pat, tačiau dėl laiko paklausa plėtra, aš dabar bando ieškoti C.

 
Aš nusileisti!Ekspertų Asemblerio kalba programuotojas gali parašyti lygi arba greičiau kodas kaip optimizuoti Kompiliavimo.Bet aš tikrai reiškia * ekspertų *.Daugelis šiuolaikinių procesorių turi keletą vykdymo padalinių ir išgalvotas atminties perdavimo vamzdynų, kad yra labai sunku optimizuoti ranka.Jei, kad surinkėjas, jums reikia pradėti iš naujo, kai nauja versija CPU išeina.

Gerai, kad paprastai nėra atsitiktų 8 bitų micros.Kritinėmis griežtų linijų, aš patikrinti, ką kompiliatorius generuoja, ir jei man nepatinka tai, I smuikas su C (tikintis gauti pasisekė), arba rašau kilpos į surinkėjui.

 
echo47 rašė:

Kritinėmis griežtų linijų, aš patikrinti, ką kompiliatorius generuoja, ir jei man nepatinka tai, I smuikas su C (tikintis gauti pasisekė), arba rašau kilpos į surinkėjui.
 

Welcome to EDABoard.com

Sponsor

Back
Top