Stránka 1 z 3
Proč to ukazuje "7<" ????
Napsal: 06 bře 2009, 17:43
od jirka89
Zdravím!
Zdravím! Napsal jsem si program, pro měření teploty DS18B20, ale místo toho, aby ukázal pokojovou teplotu, tak ukáže jenom "7<". Přitom ale měří! To jsem si ověřil. Jenom blbě zobrazuje! Tak kdyby jste byli tak hodní a pomohli se zobrazením. Dík moc
Napsal: 06 bře 2009, 17:51
od beagle
moc jsem ten program nestudoval ale dělam hodiny s ds1307 a taky to zobrazuji na displej 8x2 a tyky mi to dělalo a u mě to bylo tím, ze je to v HEX takzě 0-9 potom A-F musím přeskočit
Napsal: 06 bře 2009, 17:52
od jirka89
no teď nějak nechápu, jak to myslíš!
Napsal: 06 bře 2009, 17:57
od jirka89
NO v tom programu je cislo vydělné 10. Potom dostávám v A desítky a B jednotky. K nim přičtu hodnotu 30H, a dostávám číslo, které bych měl zobrazit nadisplay.
- mov A,teplota
mov B,#10
div AB ;deleni 10
add A,#30H
mov des,A
mov A,B
add A,#30H
mov jedn,A
Napsal: 06 bře 2009, 18:09
od Andrea
Z nějakého důvodu máš v proměnné teplota číslo 127 (7Fh). Zobrazuješ ho totiž pozpátku, jednotky, desítky.
Napsal: 06 bře 2009, 19:04
od jirka89
Tak to vypadá na chybu v tom sloučení těch dvou bajtů! Ale nějak to tam nevidím!
- mov R7,#4
mov R6,#4
prevod:
mov A,bajt1
rotp: rrc A
djnz R7,rotp
anl A,#00001111b
mov B,A
mov A,bajt2
rotl: rl A
djnz R6,rotl
anl A,#01110000b
orl AB
mov teplota,A
Napsal: 06 bře 2009, 19:21
od jirka89
Prvně ten DS18B20 pošle nižší část teploty a potom vyšší, že?????? Takže po nějakých rotacích a sloučení, musím v A dostat celočíselnou teplotu.
Napsal: 06 bře 2009, 21:09
od Andrea
jirka89 píše:Prvně ten
DS18B20 pošle nižší část teploty a
potom vyšší, že?????? Takže po
nějakých rotacích a sloučení,
musím v A dostat celočíselnou
teplotu.
Nejdřív si zobraz (hexa) ty dva
přijaté byty, jestli vůbec něco
přijímáš.
Napsal: 06 bře 2009, 21:40
od Mendor
beagle píše:moc jsem ten program nestudoval ale dělam hodiny s ds1307 a taky to zobrazuji na displej 8x2 a tyky mi to dělalo a u mě to bylo tím, ze je to v HEX takzě 0-9 potom A-F musím přeskočit
Jeden o voze a druhý o koze.
DS18B20 je teplotní čidlo a ne RTC.
Napsal: 07 bře 2009, 18:01
od jirka89
Snažil jsem se zabrazit obsah těch dvou bajtů, ale nějak se mi to nedaří. Myslíte, že by jste mi mohli pomoct se zobrazením?? Dík moc
Napsal: 07 bře 2009, 18:04
od Andrea
jirka89 píše:Snažil jsem se zabrazit obsah těch dvou bajtů, ale nějak se mi to nedaří. Myslíte, že by jste mi mohli pomoct se zobrazením?? Dík moc
V čem je problém?
Napsal: 07 bře 2009, 18:39
od Mendor
Jaké máš nastavené rozlišení teploty, 9, 10, 11 nebo 12 bit ?
Napsal: 07 bře 2009, 18:40
od jirka89
No problém je, že HEXA může obsahovat i znaky. A já nevím jak je zobrazit. ČÍsla to je snadné, stačí přičíst 30H a je to! Jenomže když tam budu mít třeba 8A, tak jak tam dostanu to "A"???
Napsal: 07 bře 2009, 18:47
od Andrea
jirka89 píše:No problém je, že HEXA může obsahovat i znaky. A já nevím jak je zobrazit. ČÍsla to je snadné, stačí přičíst 30H a je to! Jenomže když tam budu mít třeba 8A, tak jak tam dostanu to "A"???
No když ta číslici bude větší než 9, tak místo '0' přičteš 'A'.
Napsal: 07 bře 2009, 18:53
od jirka89
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??