PIC

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

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
net
Příspěvky: 205
Registrován: 07 kvě 2004, 00:00

PIC

#1 Příspěvek od net »

Zdravím,neví někdo jak napsat rutinu co načte číslo větší než 255?Děkuji
Uživatelský avatar
Split
Příspěvky: 762
Registrován: 02 pro 2006, 00:00
Bydliště: Komárno

#2 Příspěvek od Split »

mno tazko..kedze picka je 8 bitovy register...ale mozes cislo rozdelit tak ze jeden register bude na jenotky,dalsi na desiatky,dalsi na stovky atd
Vsetko co sa da pokazit sa raz pokazi.
Uživatelský avatar
jezevec
Hlavní moderátor
Příspěvky: 6101
Registrován: 13 čer 2004, 00:00
Bydliště: Břeclavsko
Kontaktovat uživatele:

#3 Příspěvek od jezevec »

Číslo uložíš do více registrů, po přetečení prvního registru (255) zapisuješ do dalšího atd.
Uživatelský avatar
net
Příspěvky: 205
Registrován: 07 kvě 2004, 00:00

#4 Příspěvek od net »

Děkuji,registry definovat zvládnu,ale další postup neznám.Můžeš to trošku více nastínit?Zkouším to.
Díky
tmz

#5 Příspěvek od tmz »

Mno, zkus se trochu vic rozepsat, co se pak bude s tim cislem dit, ale pokud chces treba dat do registru hodnotu 20401, tak si vytvořís 2 registry a do prvního dáš horních 8 bitů (b'01001111') a do druhého dolních 8 bitů (b'10110001'). Pro početní operace exsitují už napsané rutiny, např zkus stránky microchipu
Uživatelský avatar
net
Příspěvky: 205
Registrován: 07 kvě 2004, 00:00

#6 Příspěvek od net »

Potřebuji načítat impulzy např. do 99999.Potom se to bude zobrazovat,ale to už vyřeším.
tmz

#7 Příspěvek od tmz »

Pak to tedy bude, jak psal jezevec.
Uživatelský avatar
Kado
Příspěvky: 44
Registrován: 27 říj 2007, 00:00
Bydliště: PB, SVK

#8 Příspěvek od Kado »

Je to jednoduche, pisal to tu Jezevec...potrebujes dva registre, jeden bude nizsi bajt slova, druhy bude vyssi, pricom pri kazdom prichode impulzu inkrementujes nizsi bajt (register). po kazdom inkrementovani musis zistit ci nedoslo k preteceniu tj. 255->0 a ak doslo k preteceniu tak musis inkrementovat aj vyssi bajt slova...
EDIT: pri pouziti dvoch registrov mozes pocitat do hodnoty 65'535, ako napisal Nekmil, ked chces pocitat do 100tisic musis pouzit tri registre pricom mozes pocitat az do hodnoty 16'777'215
Naposledy upravil(a) Kado dne 23 bře 2008, 19:47, celkem upraveno 2 x.
Uživatelský avatar
nekmil
Příspěvky: 787
Registrován: 06 bře 2005, 00:00
Bydliště: Havířov

#9 Příspěvek od nekmil »

pozn. při počítání do 99999 potřebuješ 3 registry,
ve vyšším jazyce je to jednodušší: DIM A as LONG a můžeš počítat do alelujá
Uživatelský avatar
net
Příspěvky: 205
Registrován: 07 kvě 2004, 00:00

#10 Příspěvek od net »

Ten bohužel nemám ani neznám.
Uživatelský avatar
ViPali
Příspěvky: 524
Registrován: 21 lis 2005, 00:00
Bydliště: Bratislava

#11 Příspěvek od ViPali »

Použiješ PIC, ktorý má T1 a povolíš prerušenie od T1.
T1 je 16 bitový, po naplnení vyvolá prerušenie, od ktorého inkrementuješ ďalší register. Spolu to bude 2 na 24 t.j. 16777216 (T1H, T1L, Reg).
Ako elektrikár sa cítim slobodne.
Môžem hovoriť do vedenia!
Odpovědět

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