Interrupção

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Mensagempor gilliard » 10 Fev 2010 14:07

Então... Eu já andei pesqusando, pelo que eu ented, é o segunte
O WDT, fca verifcando o microcontrolador, quando ele deixa de gravar o 0, ele entende que o mcrocontrolador travou,

quero saber, como posso começar.
Avatar do usuário
gilliard
Byte
 
Mensagens: 121
Registrado em: 26 Ago 2008 13:32

Mensagempor ze » 10 Fev 2010 15:41

comece lendo o datashit uai!

Isso me faz lembrar o sistema de autostop de fita k7. Tinha uma pecinha que ficava balançando qdo a fita girava. Qdo parava de balançar o tape dava um stop. Nunca entendi como funcionava a mecânica daquela m****. Mas era bem bolada. Um wdog mecânico!

Bom, focando nisto:
Eu quero ao acessar uma subrotina chamada reiniciar, ela execute o Watch Dog Time, para reiniciar o sistema.

o wdog (que conheço) não é bem algo executável. Na essência vc acertou. Mas veja outra forma de interpretar o wdog: ele nada + é do que um contador que se atingir a contagem estabelecida envia o sinal de reset pra cpu. Por isso vc tem que de vez em quando zerá-lo se não ele vai ixprudinhá (ich, tô contagiado...) e resetar o uC.

Desculpe mas não vi qual pic estás a usar. Se for os 18´s pode fazer algo como asm(“RESET”) mas se for os que não tem esta instrução pode tentar:
não precisava mas acho que vou ter que dizer: deixe o wdt habilitado (óbvio ululante)
-coloque na interrupt por timer algo como asm(“CLRWDT”);
-para resetar basta inibir a interrupt
lusitanamente sua rotina seria:
void iniciar()
{
GIE=0; //ou o bit de habilitação do timer ou interr. em questão
}
ou
void iniciar()
{
for(;;);
}
caso o clrwdt esteja no loop principal (recomendado)

Maiores detalhes vc encontra no...no...no... datasheet!! Mas caso não entenda sinta-se a vontade em... ... ler de novo este post ou o datashit e DEPOIS o help do compilador se não vai ter que dar ré (no quibe.rs)

abç
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor gilliard » 10 Fev 2010 17:23

Então estou utilizando o 18F452.

Então, pensei no seguinte, dentro da subrotina reiniciar, colocar um timer, que ao contar até 5, reiniciar o microcontrolador, entenderam minha idéia ?!?!?

Eu só preciso dessa coisa simples.

Aliás, essa droga de manual do MikroC não tem nada falando do WDT, andei pesquisando na internet, mas nada favoravel, ao que eu preciso.

Abração a todos, e muito obrigado !!!!
Avatar do usuário
gilliard
Byte
 
Mensagens: 121
Registrado em: 26 Ago 2008 13:32

Mensagempor fabim » 10 Fev 2010 17:42

desculpe giliard. mais o lellis não fala grego...

nos 18F 24F 33F.
Existe o comando RESET.
isso mesmo, só escrever
reset();
ou
_Asm reset;
sei la..

Não precisa de wdt..

Wdt, é quando esta rodando um sistema onde ele é critico, e o programa não pode se perder, ou travar em algum lugar por burrice de programador.

Eu nunca usei WDT

pois nunca precisei, eu sei o que faço.....


fabim
Editado pela última vez por fabim em 10 Fev 2010 21:40, em um total de 1 vez.
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor gilliard » 10 Fev 2010 21:21

:D Falae Pessoal !!!! Tranquilos ?!?!? :D

Quero deixar uma contribuição aqui, o codigo correto, que o nosso colega deixou aqui em cima, segue abaixo:

Código: Selecionar todos
  asm { reset; }


Assim deu certo !!!!

Valew !!!!
Avatar do usuário
gilliard
Byte
 
Mensagens: 121
Registrado em: 26 Ago 2008 13:32

Mensagempor ze » 11 Fev 2010 19:51

bom até ontem o conceito que eu tinha de wdog era que seu objetivo era de também evitar problemas alheios ao sw portanto independentes da habilidade do programador. Mas em se falando em termos de fabim cujo conhecimento beira as raias do infinito...rs
amigo gil grato pelo contributo. tudo bem se complementar?
Código: Selecionar todos
asm { reset; }//Assim deu certo com o MEU compilador e com o MEU uControlador que tem RESET no seu set de instruções

abç
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor fabim » 11 Fev 2010 19:55

lellis escreveu:bom até ontem o conceito que eu tinha de wdog era que seu objetivo era de também evitar problemas alheios ao sw portanto independentes da habilidade do programador. Mas em se falando em termos de fabim cujo conhecimento beira as raias do infinito...rs
amigo gil grato pelo contributo. tudo bem se complementar?
Código: Selecionar todos
asm { reset; }//Assim deu certo com o MEU compilador e com o MEU uControlador que tem RESET no seu set de instruções

abç


nussa, desse geito eu vou me apaixonar pelo seu elogio!!!!!!
Da bejim dá ?!

Eu nunca precisei usar wdt em projetos, pois os mais criticos que eu ja fiz até hoje, não havia testes estaticos. Brow out ligado, e todos os cuidados possiveis, para que ninguem morrece queimado, ou congelado..rs
wdt é usavel? sim offcorsa.. mas eu nunca precisei...
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Anterior

Voltar para PIC

Quem está online

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

x