Olá Galera,
Como andei alardeando por aqui, estou em busca de colocar o arduino pra funcionar em 3.3v, e já vi varios modelos do que é chamado ARDUINO MINIMAL que se trata do arduino usando somente o CI + uma bateria.
Mas é dificilimo de achar modelos com clock externo de 8Mhz em 3.3v, para isso o jeito foi partir pra estudar os Fuse bits para programação do AVR.
Bem, agora a duvida: Quando cheguei entre as configurações me deparei com essa opção:
Watch-dog Timer always on; [WDTON=0]
Ai fiquei com uma duvida:
Qual a diferença entre acionar o Watchdog via fusebits e aciona-lo atraves de comando no sketch tipo
#include <avr/wdt.h>
Qual a diferença entre eles ?????????????
Tags:
OI WD, bom dia,
como não conheço muito bem o "bootloader"do arduino, vou comentar aqui considerando alguma suposição.
Primeiro vamos rever os bits do WDT sem considerar o bootloader.
O WDT é controlado primeiramente pelo bit WDTON ".
Este bit é "setado" somente via "FUSE". ou seja, somente em tempo de carga do code.
Não pode ser modificado em "run time".
Com ele "setado" (LOW) (WDTON Fuse set to “0” means programmed and “1” means unprogrammed.),
você pode então modificar o Watchdog Timer Control Register e os WDE e WDIE para agir conforme tabela abaixo.
Watchdog Timer Configuration
WDTON(1) WDE WDIE Mode Action on Time-out
1 0 0 Stopped None
1 0 1 Interrupt Mode Interrupt
1 1 0 System Reset Mode Reset
1 1 1 Inter/Sys Reset Mode Interrupt, then go to System Reset Mode
0 x x System Reset Mode Reset
Ok, agora como disse no inicio, não posso afirmar, mas simplesmente supor,
que o bootloader carrega o Fuse deixando o WDT enable, e a biblioteca qvr/wdt.h permite que
você "gerencie" os outros bits conforme as informações neste link
http://www.nongnu.org/avr-libc/user-manual/group__avr__watchdog.htm...
Rui
Ps: link interessante sobre WDT: http://forum.arduino.cc/index.php?topic=63651.0
tem um PDF sobre WDT.
Rui,
Obrigadasso pela resposta amigo, tô começando a entender os fuse bits e a coisa não é tao simples pois não tem lá muita gente que se importe com isso.
Com relação ao watchdog a maior duvida que fiquei foi que ativando ele via soft, você tem a liberdade de colocar o tempo para ativação, e a forma de uso dele é fazendo wdtreset em certas partes do sketch, dai quanto trava e o reset não é ativado então o watchdog entra em ação.
No cado do watchdog via fuse não vai pra o sketch, ai fica a duvida como ele age, qual o tempo para trabalho dele, onde configurar isso ?
Oi WD,
Se você usar a IDE do arduino, pode configurar o tempo do WDT assim: wdt_enable(WDTO_500MS);
No caso de usar sketck, acho que não tem a opção FUSE. Correto?
Se é o que estou entendendo, você não está usando o Arduino IDE, e sim
usando outro software para programar o Atemga e usando um C "normal".
Então neste C você configura os registadores WDE, WDIE conforme aquela tabela
acima e o Watchdog Timer com o tempo que você quer que o WDT espere antes de tomar uma ação.
Qual soft você está usando para programar o Atmega?
Rui
AVR Tutorial Fuses : http://www.ladyada.net/learn/avr/fuses.html
Reading and writing fuses on ATmega328P ;
http://heliosoph.mit-links.info/arduinoisp-reading-writing-fuses-at...
Fuse calculator : http://www.engbedded.com/fusecalc
Bootloader burning : https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard
Rui,
Na verdade eu estou estudando sim a IDE do arduino, mas de forma mais profunda, verificando as diferenças na constituição, nos fuses.
O que deu pra notar de forma bem legal, é que praticamente qualquer atmega pode ser utilizado com o arduino, desde que você saiba ajustar seus parametros, mas não é esse meu foco.
Meu foco é criar 2 peças na protoboard, a primeira é uma montagem com atmega328 DIP rodando em 3.3v a 8Mhz COM CRYSTAL externo de refencia, a segunda é fazer a mesma coisa só que com um ATMEGA328 SMD.
Jä tô com uma boa base de conhecimento, vou tentar agora fazer na pratica.
Até agora trabalhar com a versão DIP não tem me trazido problemas, mas a versão SMD é chata pra caramba, quando trabalho em 5V nunca tenho problemas, mas em 3.3v tô apanhando.
O Jeito é continuar estudando.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por