LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: luisjustin em 10 de Junho de 2013, 22:14

Título: Como fazer o arduino funcionar em Multithreading ?
Enviado por: luisjustin em 10 de Junho de 2013, 22:14
Olá galera estou pensando em criar um sistema para minha placa de reles, mas que não interfira em outras funções que ela faça por isso tenho que saber como fazer rodar múltiplas funções ao mesmo tempo um Multithreading! Se alguem souber me ajude.
Título: Re: Como fazer o arduino funcionar em Multithreading ?
Enviado por: tarquinio em 11 de Junho de 2013, 00:13
Não tens propriamente multithreading, o que tens de fazer é ir alternando entre as várias coisas que queres fazer...
Quais são exactamnte as coisas que queres fazer ao memso tempo?
Título: Re: Como fazer o arduino funcionar em Multithreading ?
Enviado por: Njay em 11 de Junho de 2013, 00:45
De outro tópico:

Citação de: Njay
A cena do preemptiva tens aqui estes artigos, o 2º só tenho em Inglês:

http://troniquices.wordpress.com/2010/05/24/arduino-a-fazer-varias-coisas-ao-mesmo-tempo/ (http://troniquices.wordpress.com/2010/05/24/arduino-a-fazer-varias-coisas-ao-mesmo-tempo/)
http://embeddeddreams.com/site/2011/07/23/more-on-doing-several-things-at-the-same-time (http://embeddeddreams.com/site/2011/07/23/more-on-doing-several-things-at-the-same-time)
Título: Re: Como fazer o arduino funcionar em Multithreading ?
Enviado por: luisjustin em 11 de Junho de 2013, 01:39
Sim, o que quero fazer eu tenho uma placa de reles e ela sempre tem que receber o comando e executar e um dos comandos é um timer para dizer quanto tempo um dos reles vai ficar ligado, mas na hora que começar a contagem ela vai para de receber os outros comandos ou ela vai anular o que está sendo contado, mas quero que ela possa fazer tudo simultaneamente.
Título: Re: Como fazer o arduino funcionar em Multithreading ?
Enviado por: metRo_ em 11 de Junho de 2013, 01:42
Sim, o que quero fazer eu tenho uma placa de reles e ela sempre tem que receber o comando e executar e um dos comandos é um timer para dizer quanto tempo um dos reles vai ficar ligado, mas na hora que começar a contagem ela vai para de receber os outros comandos ou ela vai anular o que está sendo contado, mas quero que ela possa fazer tudo simultaneamente.

Neste caso o ideal é usares interrupções.
Título: Re: Como fazer o arduino funcionar em Multithreading ?
Enviado por: luisjustin em 11 de Junho de 2013, 02:15
Poderia me explicar _metro ?
Título: Re: Como fazer o arduino funcionar em Multithreading ?
Enviado por: tarquinio em 11 de Junho de 2013, 04:10
Não é que interrupções sejam nada do outro mundo, mas para o que tu queres fazer não me parece necessário.
Pelo que percebi queres por um timer a correr e ir fazendo enquanto outras coisas enquanto ele não dispara...
Se usasses um delay(1000) por ex aí sim o programa parava durante 1 segundo e não fazia mais nada sem ser as interrupções.
Mas podes usar a função millis() para ir vendo quanto tempo já passou, quando já tiver passado tempo suficiente activas então o relé. Desta forma dá para ir vendo outras coisas ao mesmo tempo, não ficas bloqueado nos delays.
Título: Re: Como fazer o arduino funcionar em Multithreading ?
Enviado por: luisjustin em 11 de Junho de 2013, 06:00
Fugindo um pouco do assunto tem como fazer o Arduíno pegar o numero de quem está me ligando ? vamos dizer eu atendo o telefone ele pega o numero e passar para o programa já pesquisar o cadastro ? existe como ? o telefone aqui é linha normal RJ11. Existe possibilidades ?