Proč to ukazuje "7<" ????
Moderátor: Moderátoři
Umí to ten displej? Neumí, tak nepůjde. Ono to "rozbíjení" je děsně složitý.jirka89 píše:Blbý dotaz, ale to číslo musím rozbít, abych ho mohl zobrazit že? nejde nějak udělat, abych ho poslal najednou! (Celý "bajt")??? Aby mi zobrazil rovnou třeba "5D", že??
![Rolling Eyes :roll:](./images/smilies/icon_rolleyes.gif)
Kód: Vybrat vše
mov B,A
swap A
anl A,#0Fh
add A,#30h
cjne A,#3Ah,loc_1
loc_1: jc loc_2
add A,#07h
loc_2: ----- zobraz A
mov A,B
anl A,#0Fh
add A,#30h
cjne A,#3Ah,loc_3
loc_3: jc loc_4
add A,#07h
loc_4: ----- zobraz A
To je sice krásná rada, ale jemu to nejspíš vůbec neměří.Mendor píše:Z obsahu dvou byte které dostaneš z čidla vypočteš teplotu na jedno desetinné místo, tu následně rozdělíš na stovky, desítky, jednotky a ke každé přičteš 48 (30H). Na displej pak pošleš stovky, desítky, desetinou čárku a nakonec jednotky.
Např. 21,4°C
A ta funkce na zobrazování hexa čísel ti funguje správně? Zkusil jsi jí podstrčit nějaká čísla, jestli je to zobrazí správně? Třeba 1F, FF, A5, 01, 88...jirka89 píše:No neměří! Já nevím! Když to vyhřívám zapalovačel (ne kontaktně) jen abych ho ohřál, tak se mi ty dva bajty mění. I ta teplota. Ale jsou to čísla mimo mísu.
Udělej si jednoduchý test.jirka89 píše:Dobře při pokojové teplotě mi posílá bajt1 (LS Byte) 0A0H, a bajt2 (MS Byte) také 0A0H. Tak kolik to je potom stupňů?? Kdybys mohl mi napsat kolik to je stupňů, abych věděl, jestli ten převod co mám v programu je blbě.
Po zapnutí napájení k DS18B20 je v registrech teploty LSB a MSB hodnota 85.0°C.
Proto v celém programu zruš funkci 44H tj. převod teploty.
Při správné komunikaci s čidlem a správném výpočtu teploty ti musí na displeji po zapnutí napájení ukazovat hodnotu teploty 85.0°C. Pokud ukazuje něco jiného máš chybu v programu nebo je špatná komunikace nebo inicializace čidla.