collapse

* Links de Robótica

* Posts Recentes

Ajuda Projecto IR / RF por Njay
[Hoje às 00:03]


Recomendação de um opamp para um DAC r2r por jm_araujo
[Ontem às 23:05]


Ideias para construir um quadrúpede simples por dropes
[Ontem às 22:43]


Ajuda com TRIAC por senso
[17 de Novembro de 2017, 18:00]


TV LG White Screen por almamater
[15 de Novembro de 2017, 08:37]


Pergunta sobre prototipagem ( Pesquisa ) por luisjustin
[14 de Novembro de 2017, 23:22]


Medir Agua que está no Poço por Njay
[14 de Novembro de 2017, 13:28]


Amplificador audio por beirao
[12 de Novembro de 2017, 23:43]


Power_OK Enermax por edeweld
[12 de Novembro de 2017, 17:15]


Driver motor por beirao
[11 de Novembro de 2017, 17:40]

Autor Tópico: multi-processamento  (Lida 1438 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.401
  • 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.139
    • 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.401
  • 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.930
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.139
    • 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.401
  • 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