MIKRO C

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

MIKRO C

Mensagempor Pask » 10 Abr 2010 18:36

Amigos, como eu habilitei o watchdog timer no compilador Mikro C e gostaria de saber como ressetá-lo dentro do código antes que ele estoure.

Como fazer isso neste compilador?

Obrigado
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor Fabio777 » 10 Abr 2010 19:05

usa o comando em asm mesmo, aqui dá certo


asm{
CLRWDT
}
Fabio777
Nibble
 
Mensagens: 62
Registrado em: 19 Fev 2008 11:26

Mensagempor fabim » 11 Abr 2010 06:55

Fabio777 escreveu:usa o comando em asm mesmo, aqui dá certo


asm{
CLRWDT
}


_asm clrwdt;

ou
clrwdt();
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 Pask » 11 Abr 2010 08:38

Mas o Mikro C não possui uma instrução própria dele para fazer isso como os demais compiladores?

O estranho é que a gente não encontra nada sobre o watchdog timer nem mesmo no "help" do software.

Muito estranho!
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor Pask » 11 Abr 2010 18:05

Valeu amigos.
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor MOR_AL » 11 Abr 2010 20:21

Pask.
Você já viu que saiu o MikroC Pro?
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 Pask » 21 Abr 2010 16:09

Amigos, um novo problema para vocês:

Se eu habilito o watchdog timer nos fuses do PIC quando estou trabalhando no compilador CCS, eu escrevo a seguinte instrução no início do código:

#fuses (clock = xxxxxxx, restart_wdt)

Com essa instrução, eu posso utilizar os delays a vontade que o wdt não vai estourar.

Agora eu pergunto: e no compilador MikroC Pro? Se eu habilito o wdt nos fuses e utilizo instruções delay no meu código, o wdt estoura! Como evitar este problema neste compilador?

Por exemplo: se eu utilizo o wdt com prescaler de 1:1, ele vai contar 18ms e estourar. Se eu utilizar uma instrução "delay_ms(50)", ele vai estourar antes do término desta contagem de tempo. Como resolver isto no Mikro C ?

Obrigado.
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor Pask » 22 Abr 2010 08:11

Não se desespere. Você não gosta de um bom desafio assim como eu?...kkkkkkkkkkkkkk

O que temos que fazer é o seguinte: para evitar o estouro do wdt antes que as rotinas de delay se completem, é colocar um prescaler adequado para ele. Se mesmo assim, não for suficiente, o jeito é abandonar as rotinas de delay e usar uma interrupção de timerX para criar o delay manualmente e, dentro da rotina de interrupção, acrescentarmos a instrução assembly:

asm {clrdwt}

Assim, todas vez que a interrupção acontecer, o wdt será apagado e nunca irá estourar!
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19


Voltar para PIC

Quem está online

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

x