LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: LuísR.A. em 07 de Agosto de 2012, 11:26

Título: mais duvidas com multitask/interrupt
Enviado por: LuísR.A. em 07 de Agosto de 2012, 11:26
ja perguntei antes como fazer multitask com o arduino e disseram-me para usar interrupts mas nunca usem isso e não sei mesmo como usar.
alguem me pode dar um exemplo simples de um codigo que faça:

Meter um led a piscar a um ritmo constante durante o codigo todo.
Poder continuar a fazer um codigo sem problemas como ter motores a andar num sentido e depois alterar o sentido ou iniciar um sonar.
Título: Re: mais duvidas com multitask/interrupt
Enviado por: GnGz em 07 de Agosto de 2012, 11:36
Eu por acaso tenho código de multitask para AVR mas ainda não está acabado.

Vais ter de usar um timer para gerar interrupções no tempo costante e na função ligada a interrupção fazer toggle do pino.

Tens aqui informação de fazer isso com arduino aqui: http://arduino.cc/playground/Code/Timer1 (http://arduino.cc/playground/Code/Timer1) .

Edited: Ou então isto: http://lusorobotica.com/index.php?topic=2370.msg23230#msg23230 (http://lusorobotica.com/index.php?topic=2370.msg23230#msg23230)

Cumps :D
Título: Re: mais duvidas com multitask/interrupt
Enviado por: Marvin em 07 de Agosto de 2012, 11:37
se calhar com um timer consegues fazer isso:

http://arduino.cc/playground/Code/Timer1 (http://arduino.cc/playground/Code/Timer1)

Vê se ajuda
Título: Re: mais duvidas com multitask/interrupt
Enviado por: Njay em 07 de Agosto de 2012, 12:36
Ou com isto:

http://embeddeddreams.com/site/2011/07/10/how-to-do-several-things-at-the-same-time/ (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 (http://embeddeddreams.com/site/2011/07/23/more-on-doing-several-things-at-the-same-time)
Título: Re: mais duvidas com multitask/interrupt
Enviado por: LuísR.A. em 07 de Agosto de 2012, 13:09
obrigado pela ajuda de todos. o truque dos leds ja usava para contar o tempo no picaxe.
os timers do arduino tenho de ver melhor que são diferentes do que tou habituado.
Título: Re: mais duvidas com multitask/interrupt
Enviado por: senso em 07 de Agosto de 2012, 14:02
Podes olhar para o exemplo Blinky without delay que recorre ao milis() para executar coisas com tempos definidos, desde que o teu código não bloqueie e não tiveres uma parte que possa demorar demasiado tempo, tens execução com tempos garantidos.