PIC18F2520

A

ahmet2004

Guest
Por favor, desculpe-me se estou denso, mas eu olhei o manual, e eu não consigo descobrir como fazer alguma coisa.

Gostaria de ler todos os bits de uma porta de uma só vez - (mapeá-los para uma variável), e depois teste cada bit individualmente.

Alguém pode me mostrar como fazer isso?

 
Para ASM:
PORTB MOVLW
Yourvariable MOVWF
yourvariable BTFSC, 1; bit test 1
goto label1
yourvariable BTFSC, 2; Test bit 2
goto label2etc etc

 
Ei,

Cortex bater o prego na cabeça.Mov porta B para o registrador W, então na sua variável.Então o BTFSC (substitua próxima instrução com 'nop' (operação não) se claro, para cada bit.

Como alternativa, uma vez que você carregou o porto em sua variável, você pode girá-la deixado, por meio de carregar a bandeira e depois verificar o flag de carry.A carregar bandeira será definido se o bit é um deles.Assim, toda vez que você fizer isso, você poderia incrementar uma variável temporária, assim que você sabe que pouco você está testando.Dessa forma você tem um loop pouco agradável correr, mas eu acho que depende da sua aplicação.Por exemplo, se cada bit representa algo completamente diferente, então idéia Cortex é melhor, porque você pode ter uma rotina para cada porta-bit, que é executada se o bit é 1.

Enfim, este é todo o material de montagem, não é meu C até zero, mas eu acho que seria muito mais fácil em C, embora, Assembleia da OMI, é eficiente e bonito

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Muito feliz" border="0" />espero que isso ajude.

BuriedCode.

 
hai

córtex que disse está correto
primeiro passo u o conteúdo para w, então testá-lo

 

Welcome to EDABoard.com

Sponsor

Back
Top