Proč to ukazuje "7<" ????

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
jirka89
Příspěvky: 271
Registrován: 24 úno 2006, 01:00
Bydliště: Zlín

Proč to ukazuje "7<" ????

#1 Příspěvek 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
Přílohy
LCD-TEPL.ASM
program
(4.95 KiB) Staženo 130 x

Uživatelský avatar
beagle
Příspěvky: 30
Registrován: 14 bře 2007, 01:00

#2 Příspěvek 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

Uživatelský avatar
jirka89
Příspěvky: 271
Registrován: 24 úno 2006, 01:00
Bydliště: Zlín

#3 Příspěvek od jirka89 »

no teď nějak nechápu, jak to myslíš!

Uživatelský avatar
jirka89
Příspěvky: 271
Registrován: 24 úno 2006, 01:00
Bydliště: Zlín

#4 Příspěvek 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

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#5 Příspěvek od Andrea »

Z nějakého důvodu máš v proměnné teplota číslo 127 (7Fh). Zobrazuješ ho totiž pozpátku, jednotky, desítky.

Uživatelský avatar
jirka89
Příspěvky: 271
Registrován: 24 úno 2006, 01:00
Bydliště: Zlín

#6 Příspěvek 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
    Naposledy upravil(a) jirka89 dne 06 bře 2009, 19:21, celkem upraveno 1 x.

    Uživatelský avatar
    jirka89
    Příspěvky: 271
    Registrován: 24 úno 2006, 01:00
    Bydliště: Zlín

    #7 Příspěvek 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.

    Andrea
    Příspěvky: 9340
    Registrován: 07 zář 2007, 02:00

    #8 Příspěvek 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áš.

    Uživatelský avatar
    Mendor
    Příspěvky: 223
    Registrován: 16 dub 2008, 02:00
    Bydliště: Kladno

    #9 Příspěvek 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.

    Uživatelský avatar
    jirka89
    Příspěvky: 271
    Registrován: 24 úno 2006, 01:00
    Bydliště: Zlín

    #10 Příspěvek 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

    Andrea
    Příspěvky: 9340
    Registrován: 07 zář 2007, 02:00

    #11 Příspěvek 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?

    Uživatelský avatar
    Mendor
    Příspěvky: 223
    Registrován: 16 dub 2008, 02:00
    Bydliště: Kladno

    #12 Příspěvek od Mendor »

    Jaké máš nastavené rozlišení teploty, 9, 10, 11 nebo 12 bit ?

    Uživatelský avatar
    jirka89
    Příspěvky: 271
    Registrován: 24 úno 2006, 01:00
    Bydliště: Zlín

    #13 Příspěvek 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"???

    Andrea
    Příspěvky: 9340
    Registrován: 07 zář 2007, 02:00

    #14 Příspěvek 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'.

    Uživatelský avatar
    jirka89
    Příspěvky: 271
    Registrován: 24 úno 2006, 01:00
    Bydliště: Zlín

    #15 Příspěvek 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??

    Odpovědět

    Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“