Stránka 1 z 1

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

Napsal: 26 led 2008, 20:33
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 ...

Napsal: 27 led 2008, 08:30
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.

Napsal: 27 led 2008, 11:15
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 ..

Napsal: 27 led 2008, 14:36
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 .