[RESOLVIDO] É possível usar o pino RESET do atmega328 como I/O ?

Olá amigos,

     Estava lendo sobre como utilizar o attyny85 e nele devido a limitação do numero de pinos, é possível colocar o pino reset como I/O.

     Aqui fica a duvida:  e no atmega328(leia-se arduino uno)  isso é possível ?     Seria possível abrir mão da função reset e utilizar esse pino como I/O  ?

     Se sim, como fazer e qual numero ele assume ?

Exibições: 1605

Responder esta

Respostas a este tópico

Olá,

No datasheet do atmega328 podemos encontrar que o pino 1 (PC6/RESET) pode trabalhar como pino de RESET ou como I/O conforme o registrador RSTDISBL estiver 0 = RESET, 1=I/O.

Não sei se a IDE do arduino foi projetada para trabalhar com este pino como I/O.

Abraço.

Valeu Wiechert,

     Sempre ficava me perguntando o que realmente tinha de tão diferente entre diferentes microcontroladores, ou métodos de trabalhar com eles, que fazem em alguns fóruns o pessoal lidar com utilizadores do arduino como se fôssemos crianças brincando de lego.

    Acho que pela primeira vez descubro uma limitação,  ainda que como você coloca,  é caso de se estudar pra ver se a IDE do arduino suporta ou não tal utilização.

   A alguns anos no alvorecer da computação gráfica, surgia o PaintBrush no windows como item de primeiro contato com esse mundo, já para usuários mais avançados vinham o Corel e o Photoshop, e eu me perguntava porque esses profissionais desdenhavam dos utilizadores do paint.

   Hoje conheço não só do Paint, do Corel(photopaint e draw), como do Photoshop, mas de Sketchup, Blender e por ai vai,  mas nunca abro mão do Paintbrush, agora chamado MsPaint,  pois tem coisas que só faço nele, por exemplo, acabe de salvar qualquer arquivo .JPG em qualquer software,  reabra no MsPaint e mande reduzir algo infimo, só pra constar, tipo de 100 para 99% e mande salvar e veja o incrível nível de compressão que esse software provoca.

    Resumindo,  sempre acreditei e continuo acreditando que a maior de todas as ferramentas é a mente humana,  e que um Da Vinci com simples tintas e pinceis foi capaz de maravilhas que hoje muitos com milhares de recursos não chegam nem perto.

Weider,

Realmente o arduino (IDE do arduino) é uma ferramenta com uma curva de aplicação muito elevada, por isso que um leigo que se dispuser a seguir um dos milhares de tutoriais encontrados na net consegue encaixar shields e módulos em um arduino e fazer o upload de um código onde muitas vezes ele não domina. Dai que vem a analogia com a brincadeira de LEGO.

A facilidade é uma vantagem, mas pode se tornar uma muleta, depende de como a pessoa encara as coisas, isto é continua no CTRL+C / CTRL+V ou se dedica para aprender como é que as coisas funcionam. 

Antigamente, antes dos microcontroladores serem comuns e antes da internet existiam as revistas de eletrônica, algumas com kits prontos pra montar, e acontecia algo parecido. Muitos novatos iniciavam montando os kits de algo que lhes interessavam (luzes rítmicas, amplificadores, rádios, etc) muitas vezes sem entender nada. Alguns ficavam só nisso, outros começavam a se aprofundar na eletrônica, estudando a teoria que eles viam funcionando na prática. A mesma coisa continua acontecendo hoje, apenas os kits e revistas mudaram...

Abraço.

soh para constar, ao ativar o pino RESET com I/O, vc nao conseguira gravar o Atmega328 com a placa Arduino, pois, justamente a capacidade de resetar estará desativada...

O problema da falta de RESET seria simples de se resolver.... é só desligar a placa manualmente. .. se durante a inicialização o bootloader ainda procurar pelo novo upload ainda teria jeito de gravar.
Mas de qualquer forma eu acredito que seria preciso fazer alterações no bootloader e na IDE do arduino.
No bootloader seria preciso alterar a configuração do registrador de reset e na IDE seria preciso acrescentar a opção de desabilitar o reset e de configurar o novo pino como I/O e fazer a leitura ou escrita no mesmo.

Realmente o Flavio lembro de um detalhe que eu estava esquecido,  para realização da gravação de qualquer sketch, faz-se necessario resetar o arduino antes,  li que antigamente nas primeiras versões do duemila não existia o reset automatico, e o processo era manual,   mas a obrigatoriedade existe.

   Logo, seguindo essa lógica, acho que a duvida foi sanada, ou seja:

    Conforme demonstrou o o mago Wiechert se baseando no datasheet,  é possível sim alterar o pino de Reset para I/O,  porem, fora do mundo arduino,   visto que dentro dele, o pino Reset é função necessária.

    Logo, agradeço aos dois pela ajuda em entender essa duvida.

Bem,

Sempre que a IDE do arduino começar a ser um empecilho aos novos projetos podemos partir pro ATMEL studio, com ele é possível usar todos os recursos dos AVRs.

http://www.atmel.com/pt/br/Microsite/atmel_studio6/

E seguindo as instruções do garagista Jonatas Freitas no blog dele você poderá usar as bibliotecas do arduino dentro do Atmel estudio.

http://automacaoerobotica.blogspot.com.br/2012/12/programando-o-ard...

Talvez resolva os seus problemas.

Abraço.

 

muito interessante o que vc citou wiechert, será se o fato de usar o atmel studio aumentaria a otimizaçao do codigo pra ganhar memoria de programa, além é claro da memoria do bootloader.?

Ao dispensar o bootloader se consegue ganhar aproximadamente 2k da flash para o seu programa, mas ai será necessário um circuito para programar o AVR, existem muitos modelos a disposição. 

Quanto a otimização do código, ai vai depender de vários fatores, pois algumas bibliotecas do arduino são realmente uma bela b***a, funcionar elas funcionam, mas apenas isso pois são lentas e ocupam muita memória... já outras são muito bem elaboradas... 

Abraço.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço