Joao_P Posted March 14, 2015 at 01:08 AM Report Share #579370 Posted March 14, 2015 at 01:08 AM Boas! Precisava de uma pequena ajuda com um código. Estou a programar um microcontrolador e tenho que colocar um led a piscar de 500ms em 500ms, não posso usar funções delay, sleep, etc nem interrupções (timers do atmega). Pensei em fazer um ciclo for para queimar tempo, o meu problema está em saber quantas interações tenho que correr para dar os 500ms. Já tentei usar o simulador do atmel studio mas não consegui chegar a nenhuma conclusão. Alguém me consegue dar uma ajuda? Obrigado Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted March 14, 2015 at 09:04 AM Report Share #579374 Posted March 14, 2015 at 09:04 AM v^se é isto que procuras : https://www.portugal-a-programar.pt/topic/68464-duvidas-em-programa-c-para-o-uc-8051/?do=findComment?comment=569625 IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Joao_P Posted March 14, 2015 at 10:18 AM Author Report Share #579375 Posted March 14, 2015 at 10:18 AM Obrigado pela resposta. Estive a ver o código do link e não sei se percebi o objectivo daquele for encadeado. Pegando no exemplo do link, sendo a variável milliseconds = 1000, no segundo for o j só vai chegar a 1000 certo? A minha dúvida está em saber como é que vou saber o tempo real que esses incrementos levam no ciclo for, ainda não percebi como é que vou conseguir ter a noção do tempo que o ciclo for gastou, no meu caso os 500ms. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted March 14, 2015 at 12:01 PM Report Share #579378 Posted March 14, 2015 at 12:01 PM não o ciclo interior é gerido pela macro que dita a frequência do cristal do teu microcontrolador IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Joao_P Posted March 14, 2015 at 01:59 PM Author Report Share #579392 Posted March 14, 2015 at 01:59 PM Estou a perceber. No meu caso a frequência do cristal é de 1MHz, quero um atraso de 500ms logo quando chamo a função que vai atrasar o programa tenho que atribuir a variável milliseconds como sendo 500000? Espero não estar a dizer uma barbaridade xD Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted March 14, 2015 at 03:12 PM Report Share #579397 Posted March 14, 2015 at 03:12 PM se a frequência do cristal é X então é isso que terás de definir na macro existente para isso (ver o código do link) depois, se pretendes um atraso de Y milisegundos, basta chamar a função com esse valor como parâmetro IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Joao_P Posted March 15, 2015 at 12:21 PM Author Report Share #579469 Posted March 15, 2015 at 12:21 PM Obrigado pela ajuda Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now