alarme para valores de 10BITS. AdressH e L....?

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

alarme para valores de 10BITS. AdressH e L....?

Mensagempor Haroldo Coelho » 22 Ago 2009 13:55

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.
Editado pela última vez por Haroldo Coelho em 22 Ago 2009 15:23, em um total de 1 vez.
Haroldo Coelho
Byte
 
Mensagens: 343
Registrado em: 14 Out 2006 00:20
Localização: Rio de Janeiro

Mensagempor Haroldo Coelho » 22 Ago 2009 15:21

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
Haroldo Coelho
Byte
 
Mensagens: 343
Registrado em: 14 Out 2006 00:20
Localização: Rio de Janeiro

Mensagempor Jorge_Francisco » 22 Ago 2009 16:38

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();
Avatar do usuário
Jorge_Francisco
Dword
 
Mensagens: 1009
Registrado em: 12 Out 2006 09:53
Localização: Rio de Janeiro

Mensagempor MOR_AL » 22 Ago 2009 17:21

Haroldo.
Agora é quase que imediato.
Imagem
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor Haroldo Coelho » 22 Ago 2009 17:22

Em assembly, please.
Haroldo Coelho
Byte
 
Mensagens: 343
Registrado em: 14 Out 2006 00:20
Localização: Rio de Janeiro

Mensagempor MOR_AL » 22 Ago 2009 17:30

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. :oops:
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor Haroldo Coelho » 22 Ago 2009 18:22

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
Haroldo Coelho
Byte
 
Mensagens: 343
Registrado em: 14 Out 2006 00:20
Localização: Rio de Janeiro

Mensagempor MOR_AL » 22 Ago 2009 23:41

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
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor Haroldo Coelho » 23 Ago 2009 08:22

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.
Haroldo Coelho
Byte
 
Mensagens: 343
Registrado em: 14 Out 2006 00:20
Localização: Rio de Janeiro

Mensagempor MOR_AL » 23 Ago 2009 10:04

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
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor Djalma Toledo Rodrigues » 23 Ago 2009 14:33

. _ :idea: _ Porque não usar o Comparador ?
.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor Haroldo Coelho » 23 Ago 2009 16:13

Resolvido. Obrigado.
Haroldo Coelho
Byte
 
Mensagens: 343
Registrado em: 14 Out 2006 00:20
Localização: Rio de Janeiro

Mensagempor MOR_AL » 23 Ago 2009 19:20

Djalma Toledo Rodrigues escreveu:. _ :idea: _ 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
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor scheleder » 25 Ago 2009 10:20

Alinha a esq e usa 8 bits.
simples.
[]'s
João Scheleder Neto
scheleder
Nibble
 
Mensagens: 50
Registrado em: 23 Jan 2007 15:57
Localização: Colombo/PR


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x