Boa noite Garagistas,

Estou tentando melhorar o código do meu projeto para algo mais funcional para uma leitura mais dinâmica de 3 sensores (lm35, 2 trimpot), um botão e um RTC e estou tendo duvida no entendimento da implementação do sistema Multitarefa Cooperativa.

Sei que o Arduíno UNO  não aceita de fato a multitarefa por ser muito simples, mas que é possível fazer com que rode cada função do código em pequenos intervalos que dão a percepção de ser multitarefa.

Estou a uns dias estudando o conceito de threads, mas acho que é um pouco avançado para o meu projeto

Tambem dei uma estudada no código explicado pelo Bruno neste link: 

http://labdegaragem.com/forum/topics/multitarefa-para?commentId=622...

No link abaixo  tem um material com uma explicação interessante, mas por ser um pouco leigo estou com dificuldades de entender o conceito para replicar no meu código

http://troniquices.wordpress.com/2010/05/24/arduino-a-fazer-varias-... 

no video de Ivan Seidel possui uma boa explicação sobre threads no Arduíno

https://www.youtube.com/watch?v=oeP_NiajWME

Alguém saberia explicar melhor a implementação?

Tentei desenvolver meu código com a técnica das threads do vídeo, mas não consigo fazer a IDE validar o código, qualquer alteração sempre da erro.

desde de já agradeço

Exibições: 1438

Anexos

Responder esta

Respostas a este tópico

AO SERGIO,

   Sobre a chamada da função, é como ensinado no tutorial, não tem muito segredo,  basta na hora de criar a função você se espelhar nas funções Void Setup e void loop,  ambas são escritas assim:

void Setup(){

comando...

comando..

}

dai pra criar uma função nova qualquer é só fazer:

void novafuncao(){

comando...

comando..

}

Mas LEMBRE-SE:  uma função não deve estar dentro de outra função, por exemplo, a função novafuncao() do exemplo acima, não deverá estar dentro da void loop() nem da void setup() ela deve estar do lado de fora delas na raiz, veja onde esta o ultimo Colchete " } " do void loop ou do void setup e coloque sua função ali.

  dai pra chamar é só usar o nome dela:

novafuncao();

AO RUI E AO BRUNO:

   Rui, é uma honra poder passar um novo conhecimento a um mestre como você, uma honra !!

Ao ZÉ GUSTAVO:

   Zé já comecei 3 universidades, nunca terminei nenhuma e nenhuma foi de tecnologia,  estudei, pascal, basic, Dbase, Clipper, Delphi,  C, etc.  por conta propria.

   Eu dei uma bela parada quando começou esse negocio de VB, Deplhi e Java voltado a objetos, hoje agradeço isso, pois a programação dos microcontroladores não é focada em objeto e se eu tivesse voltado minha mente pra esse viez eu teria muito mais dificuldades hoje.

    Não me arrependo, e acho que você tambem não deveria,  percebi que não dá pra saber tudo.

    Hoje tô me aplicando pra entender a fundo os radios nrf24l01 tem muita coisa neles, muito potencial,  mas quero aprender sobre os ESP8266, tenho vontade tambem de aprender sobre ARM CORTEX,  mas sinceramente,  tudo a seu tempo...  uma coisa de cada vez...  no final o importante é se divertir e ter prazer aprendendo.

No momento estou estudando o ESP8266. 

Se deseja se aprofundar, acompanhe o Tutorial ( estou revendo e aprendendo muito - isto é , me distraindo também).

http://labdegaragem.com/forum/topics/conhecendo-o-esp8266

Zé, com certeza assim que começar com os ESP serei seu discipulo kkk.

Meus ESP já chegaram, tô com 4, sendo dois ESP-12e cru, só os modulos, e dois com as plaquinhas que pelo que me lembro chamam de node MCU.

  Para os cru, eu projetei um adaptador dele para DIP que os possibilita encaixa-los na Protoboard, depois coloco a foto e o projeto no CAD Eagle aqui.

  Mas por enquanto não quero misturar as coisas, deixa eu me aprofundar mais nos NRF, tô acabando de criar umas placas especiais, onde tô criando uma classe de arduino DIP que rola em 3.3v com cristal, pra poder usar com os nrf sem precisar de conversores de tensão.

   Cada estudo é um estudo, e tudo pode ser util amanhã.

   Mas quando começar com os ESP vou te  encher o saco bastante kkk

É isso ai, foque-se nos seus objetivos !

Quando tiver dúvidas no ESP8266, fique à vontade para perguntar. 

Eu e muitos colegas do Lab estamos estudando o ESP8266.

Rui, o que foi feito é a mesma coisa que eu fiz no MPLAB X.

O recurso de dividir o código em funções reaproveitáveis existe desde antes de inventarem a linguagem C. Inclusive a extensão desta ideia se chama biblioteca.

Só achei ruim não ter que colocar o #include pois vendo a apresentação, parece que o Arduino faz o include automático o que me deixa confuso e foge do padrão. Pode até facilitar para alguns porém na hora de declarar variáveis globais e aninhar includes, o programador sofrerá até descobrir qual a ordem de arquivos está sendo incluída, se descobrir...

Grande abraço,

  'Eiju

Oi pessoal, bom dia,

pois é. um boa coisa desta vida é ter amigos, outras é aprender.

"Brigado" à todos.

Rui

Ao RUI,

   Brigado tambem rui !

Ao Eiju,

   Eiju, não sei se você notou, mas de uma certa forma todos aqui apesar da experiência, temos ainda muito a aprender.

   A sua dificuldade com a sintaxe do Arduino é normal, é justamente o que o Zé Gustavo tava falando sobre a dificuldade da gente de entender programação voltada a objeto,  tudo isso parte porque já temos conceitos previos formados com estudos pretéritos, dai novas coisas, ainda que similares exigem readaptação que leva tempo.

   No caso do arduino, o lance é que ele não usa C/C++ puro ele usa uma versão própria chamada WIRING, dai a confusão pra quem vem do C/C++ Puro.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço