rutina pro PIC - nastavení hodnoty od -50 do +50 dec

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

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Jirka
Příspěvky: 2034
Registrován: 01 črc 2005, 00:00
Bydliště: zbídačený kraj
Kontaktovat uživatele:

rutina pro PIC - nastavení hodnoty od -50 do +50 dec

#1 Příspěvek od Jirka »

Edit: vyřešeno

Zdravím,
v jedné aplikaci potřebuji nastavovat číslo jako dekadickou hodnotu od -50 do +50. Mám na to 2 registry, desítky a jednotky, dvě tlačítka - mínus a plus. Po dosažení +50 už nesmí jít přidat jednotka, při -50 taktéž.

Hledám nějaký návrh obslužné rutiny v assembleru, hlavně jak jednoduše vyhodnocovat, zda už jsem v záporných číslech, a podle toho vlastně "otočit" funkci tlačítek.


Myšlenková impotence to je horor ...
Naposledy upravil(a) Jirka dne 29 led 2008, 17:18, celkem upraveno 1 x.
*****
Uživatelský avatar
eljaro
Příspěvky: 441
Registrován: 03 pro 2004, 00:00
Bydliště: Krnov
Kontaktovat uživatele:

#2 Příspěvek od eljaro »

nic proti ale to si snad napíšes sám a pak proč dva registry na číslo od 0 do 50 a jedn bit na znaménko ! tak proč ta složitost pokud jde o hodnotu tak jen odečteš od 50 a porovnáš s zdaje podtečeno a jeto ? Pouked s asm začínáš tak projdi net jsou zde stránky škol programování pic a tam tyhle věci jsou popsány.
Jirka
Příspěvky: 2034
Registrován: 01 črc 2005, 00:00
Bydliště: zbídačený kraj
Kontaktovat uživatele:

#3 Příspěvek od Jirka »

Když použiju 1 registr, tak budu mít číslo v hex, potřebuju dec, tak bych to ještě musel přepočítat. To by nebyl problém. Ale pokud budu mít vše o 32h posunuté, tak mě nenapadlo, jak přepočíst třeba číslo 2Dh, což bude vlastně znamenat -05 v dec.

Dnes se s tím ale nějak poperu, včera mi to už nemyslelo, ostatně byla pozdní noční, vlastně brzká ranní hodina ..
*****
Uživatelský avatar
eljaro
Příspěvky: 441
Registrován: 03 pro 2004, 00:00
Bydliště: Krnov
Kontaktovat uživatele:

#4 Příspěvek od eljaro »

u takových malých čísel je to hračka čitej od 0 do 100 pro detekci +- použij odečet -50 při podtečení je to - hodnota při nulovém výsledku 0 jinak + , Obdobný postup lze uplatnit při zjištění jaké je číslo pro převod zda +- a kolik , dekodování na dec se stejně použije jen při zobrazení údaje a to nemá smysl vícekrát než tři krat za sekundu .Pokud jsou hodnoty nejsou větší než 127 přidává se znaménko do bitu 7 , při vyších číslech je postup obdobný ale předpokládáse použití dvou a více registrů . Běžná bitová aretmetika nezná - ani čárku ! Vše se dopočítavá obdobně taková rutina ale pro číslo +-50 by běžela několika násobně déle než prostý přepočet .
Odpovědět

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