collapse

* Posts Recentes

Resmas de Trotinetes por KammutierSpule
[19 de Fevereiro de 2019, 17:39]


[Material] Compra de material por papamoscas
[15 de Fevereiro de 2019, 17:05]


Motor com travão por Alfredo Garcia
[13 de Fevereiro de 2019, 22:56]


Porta Arduino Baixando tensao por mauriciosouza100
[08 de Fevereiro de 2019, 13:39]


Fábricas de componentes electrónicos em Portugal? por SerraCabo
[07 de Fevereiro de 2019, 13:54]


Sistema embarcado movido a energia solar por Njay
[06 de Fevereiro de 2019, 15:01]


Tentanto reaver alguns conhecimentos de eletronica por filjoa
[06 de Fevereiro de 2019, 02:58]


bma180 avr por vasco
[03 de Fevereiro de 2019, 21:40]


3D Prusa hephestos da BQ por josecarlos
[30 de Janeiro de 2019, 18:43]


Gerador de lixo radioeléctrico III por SerraCabo
[29 de Janeiro de 2019, 19:40]

Autor Tópico: multi-processamento  (Lida 1685 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline manuel_apr

  • Mini Robot
  • *
  • Mensagens: 27
multi-processamento
« em: 07 de Julho de 2013, 18:32 »
boa tarde.

é possível fazer multi-processamento com o arduino?

é que eu tenho no arduino um relógio e de vez em quando é necessário fazer outras operações. sempre que entro nas outras operações o relógio para e continua depois onde tinha ficado mas isso causa atrasos de alguns minutos.

cumps

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.602
  • Helpdesk do sitio
Re: multi-processamento
« Responder #1 em: 07 de Julho de 2013, 18:37 »
Relógio?
Se queres tempo estavel, ou usas um timer e interrupções, ou tens de garantir que não tens código bloqueante e usas algo do género do blinky without delay para que tenhas cada parte do teu programa a ser executada de x em x ms(ou segundos, ou dias, ou o intervalo de tempo que quiseres).
Avr fanboy

Offline manuel_apr

  • Mini Robot
  • *
  • Mensagens: 27
Re: multi-processamento
« Responder #2 em: 07 de Julho de 2013, 18:57 »
obrigado pela resposta.

cumps

Offline vicardosof

  • Mini Robot
  • *
  • Mensagens: 223
Re: multi-processamento
« Responder #3 em: 07 de Julho de 2013, 19:50 »
Por que não usas um relógio externo?

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.417
    • Tróniquices
Re: multi-processamento
« Responder #4 em: 07 de Julho de 2013, 19:58 »
Para teres as horas mesmo precisas, precisas de um relógio externo ou um cristal de 32768Hz no mega.

Caso contrário, podes usar multiprocessamento cooperativo:

http://embeddeddreams.com/site/2011/07/10/how-to-do-several-things-at-the-same-time/
http://embeddeddreams.com/site/2011/07/23/more-on-doing-several-things-at-the-same-time/

Tenho uma versão portuguesa do 1º artigo:

http://troniquices.wordpress.com/2010/05/24/arduino-a-fazer-varias-coisas-ao-mesmo-tempo/

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.602
  • Helpdesk do sitio
Re: multi-processamento
« Responder #5 em: 07 de Julho de 2013, 20:00 »
Podes ter uma interrupção de 1ms, e contar segundos, minutos e horas a partir dai, com um cristal de 16Mhz, o cristal de 32Khz não é de todo necessário, só se for para ligar ao timer 1, mas não existe necessidade disso.
Avr fanboy

Offline dropes

  • Mini Robot
  • *
  • Mensagens: 1.943
Re: multi-processamento
« Responder #6 em: 07 de Julho de 2013, 20:01 »
Relógio externo (RTC) só se justifica quando se quer manter o horário certo depois de se desligar a alimentação.

Se for usado um timer e interrupção, como o Senso referiu, funciona perfeitamente, isto só é possível se o micro tiver um oscilador a cristal, como acontece no arduino, caso contrário a precisão é mentira e não faz 1 minuto sem falhar pelo menos 1 segundo.

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.417
    • Tróniquices
Re: multi-processamento
« Responder #7 em: 07 de Julho de 2013, 20:16 »
Um cristal de 32.768 KHz tem um erro inicial tipico de 20ppm. Um cristal de 16.000 MHz (que é o que têm nos vossos arduinos, e é o que em geral estão a comprar quando compram um cristal de 16MHz) tem os mesmos 20ppm de erro, ou mais. 20ppm no cristal de 32.768KHz é um erro de ~+/-0.6 Hz que dá um erro de quase 52s por mês. 20ppm de erro no cristal de 16.000 MHz é um erro de até ~+/-320Hz, 533 vezes maior que o erro do cristal de 32.768 KHz ;). Por isso tudo o que é "relógio" tem um cristal de 32.768 KHz. Se é só para contar umas horas o cristal de 16.000MHz serve.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.602
  • Helpdesk do sitio
Re: multi-processamento
« Responder #8 em: 07 de Julho de 2013, 21:07 »
E porque é um numero bonito e uma potência de 2 que é facilmente dividido num sinal de 1s usando apenas 15 Flips Flops tipo D, por exemplo.
Avr fanboy

Offline manuel_apr

  • Mini Robot
  • *
  • Mensagens: 27
Re: multi-processamento
« Responder #9 em: 14 de Julho de 2013, 13:27 »
agradeço todas as respostas. mas como queria manter as horas depois de desligar tudo optei por um relógio externo. agora estou à espera que ele chegue.

cumps