collapse

* Links de Robótica

* Posts Recentes

Medir Agua que está no Poço por filjoa
[Ontem às 20:58]


URGENTE - display de 7 segmentos com backpack por helderjsd
[20 de Setembro de 2017, 12:30]


Preços e fabricantes de pcb por Sérgio_Sena
[19 de Setembro de 2017, 10:20]


Palavras Cruzadas por Njay
[19 de Setembro de 2017, 02:24]


Isaac Asimov - I, Robot por senso
[18 de Setembro de 2017, 03:41]


Apresentação por TigPT
[17 de Setembro de 2017, 07:31]


ic SL440 da Plessey? por senso
[16 de Setembro de 2017, 13:11]


Compra Colectiva RS-Amidata por brunus
[15 de Setembro de 2017, 22:31]


Ideias para construir um quadrúpede simples por zordlyon
[15 de Setembro de 2017, 10:18]


Preparar bancada de testes por jm_araujo
[14 de Setembro de 2017, 10:24]

Autor Tópico: multi-processamento  (Lida 1370 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.390
  • 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.086
    • 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.390
  • 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.920
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.086
    • 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.390
  • 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