collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: multi-processamento  (Lida 2830 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.733
  • 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.598
    • 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.733
  • 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: 2.189
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.598
    • 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.733
  • 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