NEzobrazování mrtvývh nul ve výsledném čísle na displeji.

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

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
ZdenekHQ
Významný člen
Příspěvky: 25519
Registrován: 21 črc 2006, 00:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#16 Příspěvek od ZdenekHQ »

Při dělení číslem menším než 16 je ten algoritmus kratší. Číslo, kterým se dělí, je v r3. Dělené číslo je v Mat_reg, délka v r2, v tomto případě 4B, zbytek v b.

Kód: Vybrat vše

   mov   r1,#(Mat_reg+3)    
   mov   r2,#4             
   mov   b,#0

Deln_1:
   mov   a,@r1
   anl   a,#0f0h
   add   a,b
   swap   a
   mov   b,r3
   div   ab
   swap   a
   xch   a,@r1
   anl   a,#0fh
   swap   a
   add   a,b
   swap   a
   mov   b,r3
   div   ab
   add   a,@r1
   mov   @r1,a
   dec   r1
   djnz   r2,Deln_1
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Uživatelský avatar
lesana87
Příspěvky: 4393
Registrován: 20 zář 2014, 00:00

#17 Příspěvek od lesana87 »

Zajímavý, to jsi vymyslel, ten algoritmus?
Uživatelský avatar
Mahoney
Příspěvky: 759
Registrován: 26 říj 2019, 00:00

#18 Příspěvek od Mahoney »

termit256 píše:Pokud to tak udelas, bude ti cislo pri obnovovani blikat.


Od multiplexně řízenýho displeje tak nějak očekávám, že bude blikat… Ty ne?

Prd, to nesmíš bejt línej si zkontrolovat počty potřebných strojových cyklů :wink:
Uživatelský avatar
ZdenekHQ
Významný člen
Příspěvky: 25519
Registrován: 21 črc 2006, 00:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#19 Příspěvek od ZdenekHQ »

@Lesana: Ne, tak dobrej nejsu, je to z nějaký Teslácký příručky k 8051.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Uživatelský avatar
DavidChlup
Příspěvky: 69
Registrován: 03 zář 2019, 00:00
Bydliště: Karlovy Vary

#20 Příspěvek od DavidChlup »

Díky všem za odpovědi a návrhy, jednalo se o atmegu16, takže dělení složitější. Vyřešil jsem to jednou malou rutinou, jak poradil Termit. Před odesláním na displej kontroluju (zleva) už převedené do ascii, zda není nula. Pokud je nula, nahradím mezerou, pokud nula není, ukončím pro zbytek číslic kontrolu. Funguje to perfektně a je to cca 10 rádků navíc.

Ještě pro upřesnění: nevím, jak se to učí na školách v ČR, já se k tomuhle na škole bohužel nedostal.

Díky, díky díky :)
termit256
Příspěvky: 10029
Registrován: 06 pro 2007, 00:00

#21 Příspěvek od termit256 »

Mahoney píše:
termit256 píše:Pokud to tak udelas, bude ti cislo pri obnovovani blikat.


Od multiplexně řízenýho displeje tak nějak očekávám, že bude blikat… Ty ne?

Prd, to nesmíš bejt línej si zkontrolovat počty potřebných strojových cyklů :wink:


Kdyby to chtel na multiplexne rizeny displej, nebude cisla prevadet na ascii ;-)
Uživatelský avatar
petula
Příspěvky: 828
Registrován: 22 kvě 2016, 00:00
Bydliště: Čelákovice / Brandýs n.L / Stará Boleslav
Kontaktovat uživatele:

#22 Příspěvek od petula »

DavidChlup píše:...Před odesláním na displej kontroluju (zleva) už převedené do ascii, zda není nula. Pokud je nula, nahradím mezerou, pokud nula není, ukončím pro zbytek číslic kontrolu....

Díky, díky díky :)

Celkem je fuk, zda to je ascii nebo hex nebo binárně... Podstatné je, že jsi se po mnoha pokusech dostal tam, co je popsáno v datasheetu k obvodu 7447 :D A přitom stačilo vzít ten datasheet, mrknout na ty vývody obodu a přečíst si 3-4 věty, jak se zháší nevýznamné nuly. Obvod 7447 existoval dávno před mikroprocesorama. Dnes se nevýznamné nuly zháší mikropočítačem s miliardou tranzistorů a je potřeba mraky času k jeho naprogramování. Před 40 lety to udělal klučina s několika drátky za 5-10 minut. Tomu se říká pokrok.
termit256
Příspěvky: 10029
Registrován: 06 pro 2007, 00:00

#23 Příspěvek od termit256 »

Kdyz je to fuk, tak mi ukaz jak se pomoci dratku zhasi ty nuly u displeje s hd44780 :-)
Uživatelský avatar
Mahoney
Příspěvky: 759
Registrován: 26 říj 2019, 00:00

#24 Příspěvek od Mahoney »

termit256 píše:Kdyby to chtel na multiplexne rizeny displej, nebude cisla prevadet na ascii ;-)


A proč by ne? Kde je psaný, že v daným zapojení nevyužívá například i serial port? Zapojení tu nikde nevidím a že se jedná o znakovej displej taky nikde přímo nenapsal - v podstatě celá první stránka tohoto vlákna je vzhledem k jeho názvu víceméně offtopic, v názvu se mluví o displeji a pak se tu probírá konverze a o displeji ani slovo. Jako sorry, nějaký koule mám, ale křišťálový fakt nejsou. Asi seš bystřejší, nebo s ním zrovna sedíš u jednoho stolu, nebo nevím co ti na to mám napsat - ovšem jako programátoři bychom měli umět definovat věci jednoznačně, neexistuje bystřejší a méně bystrý mikrořadič či zapojení.
Odpovědět

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