U
Uridan
Guest
Hei
Jeg bruker Keil til programmet mitt 89C51 bruke C-språk, og jeg prøver å arbeide følgende ligning.
luftfuktighet = (0,6785 * (ADC_value)) - 27.1
oppmerksom på at ADC_value er å gi riktige verdier.
Men når jeg bygge min programmet vil det gi meg 8 warrnings og når jeg debug mitt program fuktigheten forblir tom,
og dermed ligningen ikke implimented i programmet.
Så jeg bestemte meg for å eliminere Point, først ved hjelp av følgende ligning.
luftfuktighet = ((6785 * (ADC_value)) / 10000) - 27
Denne gangen ingen warrnings fikk men når debugging programmet et par ..vil alltid vises uansett ADC verdi.dermed igjen ligningen er ikke workling riktig.
Igjen, jeg bestemte meg for å manipulere ligningen for testing og brukte følgende:
luftfuktighet = ((6785 * 2) / 10000) - 27, men igjen verdien ikke var rett.så jeg snu -27 til 27 og gjett hva, ligningen virket.
Jeg aner ikke hva jeg gjør galt.Også Keil kan arbeide log10 (x), sin (x) etc, men programmet vil gi noen warrnings og vil ikke exectute som del av programmet.
Jeg bruker <math.h> biblioteket.
Jeg mangler noe viktig her?
void sendhumidity_data ()
(
char fuktighet;
/ / fuktighet = (((6785) * (150)) / 10000) -27;
luftfuktighet = ((6785 * 2) / 10000) 20;
bin = (humidity/10); / /
select første sifferet av verdi konvertert
bin1 = bin 0x30;
dec = (fuktighet% 10); / / mest signifikante siffer
dec1 = dec 0x30;
SBUF = bin1;
while (TI == 0); / / Vent til den serielle data blir sendt.
TI = 0;
SBUF = dec1;
while (TI == 0); / / Vent til den serielle data blir sendt.
TI = 0;
)
Merk: bin og dec både unsigned char.
Fuktigheten skal være mellom 99 - 0, og siden jeg bruker HyperTerminal jeg spliting den hex resultere i to for å vise retten ASCII tegn fra 0 til 9 serielt.
Eventuelle hjelpe ville være fint vennligst
Hilsen
Uridan
Jeg bruker Keil til programmet mitt 89C51 bruke C-språk, og jeg prøver å arbeide følgende ligning.
luftfuktighet = (0,6785 * (ADC_value)) - 27.1
oppmerksom på at ADC_value er å gi riktige verdier.
Men når jeg bygge min programmet vil det gi meg 8 warrnings og når jeg debug mitt program fuktigheten forblir tom,
og dermed ligningen ikke implimented i programmet.
Så jeg bestemte meg for å eliminere Point, først ved hjelp av følgende ligning.
luftfuktighet = ((6785 * (ADC_value)) / 10000) - 27
Denne gangen ingen warrnings fikk men når debugging programmet et par ..vil alltid vises uansett ADC verdi.dermed igjen ligningen er ikke workling riktig.
Igjen, jeg bestemte meg for å manipulere ligningen for testing og brukte følgende:
luftfuktighet = ((6785 * 2) / 10000) - 27, men igjen verdien ikke var rett.så jeg snu -27 til 27 og gjett hva, ligningen virket.
Jeg aner ikke hva jeg gjør galt.Også Keil kan arbeide log10 (x), sin (x) etc, men programmet vil gi noen warrnings og vil ikke exectute som del av programmet.
Jeg bruker <math.h> biblioteket.
Jeg mangler noe viktig her?
void sendhumidity_data ()
(
char fuktighet;
/ / fuktighet = (((6785) * (150)) / 10000) -27;
luftfuktighet = ((6785 * 2) / 10000) 20;
bin = (humidity/10); / /
select første sifferet av verdi konvertert
bin1 = bin 0x30;
dec = (fuktighet% 10); / / mest signifikante siffer
dec1 = dec 0x30;
SBUF = bin1;
while (TI == 0); / / Vent til den serielle data blir sendt.
TI = 0;
SBUF = dec1;
while (TI == 0); / / Vent til den serielle data blir sendt.
TI = 0;
)
Merk: bin og dec både unsigned char.
Fuktigheten skal være mellom 99 - 0, og siden jeg bruker HyperTerminal jeg spliting den hex resultere i to for å vise retten ASCII tegn fra 0 til 9 serielt.
Eventuelle hjelpe ville være fint vennligst
Hilsen
Uridan