Página 1 de 1
alarme para valores de 10BITS. AdressH e L....?

Enviado:
22 Ago 2009 13:55
por Haroldo Coelho
Estou querendo colocar um alarme para quando a entrada no ADC do meu PIC for maior que ...por exemplo 4,0V.(Range de 0 a 5 V)
Não sei como fazer esse SET...como representar essa entrada considerando o que está nos registradores ADREESH e ADRESS L...
Como fica distribuído esses valor de 80%(4V) nesses regisatradores em BITS??
Se fosse só 8 BITS seria tudo mais fácil, não?
SE alguem me der uma dica e em assembly, seria ótimo.

Enviado:
22 Ago 2009 15:21
por Haroldo Coelho
Eu peguei, por exemplo, Eu peguei 800 para decimal ...e convertí para binário, deu 1100100000:
quer dizer que tenho então:
00000011 no ADRESS H e 00100000 no ADRESS L...mas até aí morreu neves..
Como fazer uma comparação dentro dum projeto em assembly.
Para quando esses dois valores ultrapassarem o SET POINT

Enviado:
22 Ago 2009 16:38
por Jorge_Francisco
Haroldo Coelho escreveu:Eu peguei, por exemplo, Eu peguei 800 para decimal ...e convertí para binário, deu 1100100000:
quer dizer que tenho então:
00000011 no ADRESS H e 00100000 no ADRESS L...mas até aí morreu neves..
Como fazer uma comparação dentro dum projeto em assembly.
Para quando esses dois valores ultrapassarem o SET POINT
int16 var=0;
var=adressh;
var=(var<<8)+adressl;
var=var*5/1023;
if(var>4)
FazAlgo();

Enviado:
22 Ago 2009 17:21
por MOR_AL
Haroldo.
Agora é quase que imediato.
MOR_AL

Enviado:
22 Ago 2009 17:22
por Haroldo Coelho
Em assembly, please.

Enviado:
22 Ago 2009 17:30
por MOR_AL
Haroldo Coelho escreveu:Em assembly, please.
Pô Haroldo. É só usar instrução de subtração e veridicação do bit Z e C.
Tenta fazer...
MOR_AL
PS: Hii! Acho que você não estava se referindo à minha postagem. Foi colocada no minuto anterior à sua.


Enviado:
22 Ago 2009 18:22
por Haroldo Coelho
Esse algorítimo eu entendí.
Mas: Subtrair o valor do adressH(usando SUBLW) de que valores...?
Se o meu SET for de aprox. 4 volts...
Obrigado MORAL.
Imaginemos DADOH e DADOL, como variáveis da rotina de leitura do canal AD, ficaria...
movf DADOH, W
sublw ...........
btfsc SATUS, C
goto condição_normal
ps.: Como disse no início, se fosse 8 BITS seria moleza.
movf DADOL,W
sublw ..........
btfsc STATUS,C
goto condição_normal
goto condição_alarme

Enviado:
22 Ago 2009 23:41
por MOR_AL
Haroldo.
1 - Este fluxograma compara dois valores com 16 bits cada um. Ad, obtido da conversão AD e Val, valor do seu set poit.
2 - No fluxograma consta apenas comparações entre bytes (8 bits). É a "moleza" a que você se refere.
Ad_H - Parte alta da conversão AD (8 bits).
Ad_L - Parte baixa da conversão AD (8 bits).
Val_H - Parte alta do seu set point (não é tensão e sim um valor binário), que corresponde a um valor analógico que você estipulou. É o valor que você quer comparar com o resultado da conversão AD. (8 bits). Se você conhece o valor analógico do set point, então deve achar o valor digital correspondente.
Val_L - Parte baixa do seu set point (não é tensão e sim um valor binário, que corresponde a um valor analógico que você estipulou. É o valor que você quer comparar com o resultado da conversão AD. (8 bits).
Exemplo:
Você deseja comparar uma tensão analógica de uma variável qualquer(Ad = 2,6V), com um valor fixo analógico (Val =2,5V).
1 - Obtém o valor digital do seu valor analógico fixo. Para um CAD com 10 bits e Vref = 5V, Val = (2,5 / 5) * 1024 = 512 (decimal) = 10 00000000
Val_H = 10 e Val_L = 00000000
2 - A tensão analógica (sua variável que você coloca na entrada do CAD do PIC) é convertida para Ad = (2,6 / 5) * 1024 = 532 (decimal) = 512 + 16 + 4 = 10 00010100
Ad_H = 10 e Ad_L = 00010100.
3 - Use estes valores para entrar na rotina do fluxograma.
O seu set point também poderia ser obtido, via outra entrada analógica do PIC.
MOR_AL

Enviado:
23 Ago 2009 08:22
por Haroldo Coelho
valeu moral. vou fazer as instruçoes devidas.
mas como quero alarme no caso da variavel ser maior que o set, nao preciso usar a condicao de igual...só a condicao de maior que, isso economiza instrucão, certo.
ainda hoje vou testar meu hardware.

Enviado:
23 Ago 2009 10:04
por MOR_AL
Haroldo Coelho escreveu:valeu moral. vou fazer as instruçoes devidas.
mas como quero alarme no caso da variavel ser maior que o set, nao preciso usar a condicao de igual...só a condicao de maior que, isso economiza instrucão, certo.
ainda hoje vou testar meu hardware.
Certo, mas acho que algumas instruções a mais não fariam diferença significativa. Além do mais, você teria uma rotina mais geral, que poderia usar em outros programas, não é?
Eu costumo fazer assim. Ou crio macros, ou crio rotinas.
MOR_AL

Enviado:
23 Ago 2009 14:33
por Djalma Toledo Rodrigues
. _

_ Porque não usar o Comparador ?
.

Enviado:
23 Ago 2009 16:13
por Haroldo Coelho
Resolvido. Obrigado.

Enviado:
23 Ago 2009 19:20
por MOR_AL
Djalma Toledo Rodrigues escreveu:. _

_ Porque não usar o Comparador ?
.
Djalma.
Poderia ser uma opção, sim.
Não seria uma opção, caso:
a) Ele só dispusesse de um pino para o CAD. O set point já poderia se encontrar na memória de programa ou na EEPROM. O comparador necessita de dois pinos.
b) Há necessidade de realizar outra(s) tarefa(s) com o valor convertido da variável. Display etc.
Haroldo escreveu:Resolvido. Obrigado.
Legal!!!
MOR_AL

Enviado:
25 Ago 2009 10:20
por scheleder
Alinha a esq e usa 8 bits.
simples.