Stránka 1 z 1

Mikropascal vs zbernica SPI

Napsal: 01 srp 2008, 20:28
od mety
Mam menši problem pri komunikacii teplotneho čidla TC77 s PIC16F877A.
Problem je v tom,že TC77 pošle po zbernici 16 bitov a ja z nich potrebujem vybrať len 8 (MSB). Akym prikazom to dosiahnem?Nahadže mi to naraz a je v tom chaos.

Napsal: 04 srp 2008, 09:51
od nop
Ahoj,

Ani mikropascal ani čidlo TC77 neznám,ale izolovat to jde pomocí bitových funkcí jako AND XOR... toto jsem vzal z jednoho programu v basicu pro PIC: Y = SEKUNDY & %00001111 tohle mi izoluje 4 horní bity a do proměnné Y to uloží hodnotu která je v dolních 4 bitech proměnné SEKUNDY

Napsal: 04 srp 2008, 16:25
od Makovec
V MP lze normálně používat asm ,takže pokud by to někdo věděl můžete tazateli radit i v asm.

Dkybych viděl konkrétní případ (kus zdrojáku),možná bych poradil i já (v MP).

Napsal: 04 srp 2008, 17:10
od nop
Tak v ASM jsou to instrukce ANDLW,ANDWF nebo XORLW a XORWF
pokud chci z jednoho byte vytřídit pouze 4 spodní bity a rekneme v registru TEPLOTA mam hodnotu nactenou z cidla pak je to v asm

movlw b'00001111' ; tam kde jsou 1 zustane puvodni hodnota
ANDWF TEPLOTA,W ; odmaskování bitů a výsledek uložen v registru W

psal jsem to ted z hlavy pokud jsem se nesplet melo by to fungovat.Pro 16bitové číslo by v asm stačilo celý horní byte ignorovat.V picbasicu znamenko & značí logickou operaci myslím AND,v mikropascalu to bude určitě taky,hledejte v helpu...

Napsal: 04 srp 2008, 18:23
od ZdenekHQ
Načti dvakrát po sobě do stejný proměnný 8 bitů :D (předpokládám, že to začná LSB)

Napsal: 13 čer 2009, 22:59
od mety
Díky nop.
Po veľmi dlhej dobe som sa k tomu dostal a funguje to :)