Página 1 de 1
Interrupção de overflow PIC

Enviado:
04 Jan 2011 14:42
por pccassin
Olá, Gostaria de saber como posso fazer para utilizar a interrupção de Overflow para gerar um interrupção a cada 1s aproximadamente e incrementar um variavel(contador) como faço!?
Obs:meu oscilador é de 20.000Mhz...
Grato!

Enviado:
04 Jan 2011 14:50
por Andre_Cruz
pccassin,
Passa mais informações tipo:
*PIC
*Linguagem de programação
Fica mais fácil pro pessoal te ajudar.
Abraço
André Cruz

Enviado:
04 Jan 2011 17:07
por pccassin
O PIC é o 18F2550 e a linguagem é C (mplab c18)...

Enviado:
04 Jan 2011 18:45
por mastk
Chamando rotinas demais? Passando contextos demais em cada chamada de rotina.

Enviado:
04 Jan 2011 19:36
por pccassin
Hein? como assim chamando rotinas demais!? hahaha não entendi... se possivel com muitooo poucas rotinass... se é isso que quer saber... rsrsrs

Enviado:
05 Jan 2011 00:22
por jorgeluiz
serve asm:
movlw d'26'
movwf tempoC
movlw d'119'
movwf tempoB
movlw d'85'
movwf tempoA
loop
decfsz tempoA,1
goto loop
decfsz tempoB,1
goto loop
decfsz tempoC,1
goto loop
return
cristal de 20Mhz, 5.000.003 ciclos de maquina

Enviado:
05 Jan 2011 06:19
por Fabio777
Interrupção acho por overflow é por estouro de memória, acho que não é isso o que vc quer
Acho que está querendo utilizar a interrupção por Timer, nesse caso:
http://eng-serve.com/pic/pic_timer.html
coloca o Prescaler em 1:8
TMR1L = 221;
TMR1H = 11;
com isso teremos um tempo de 0.09999840 segundo, se contarmos o tempo que demora para tratar a interrupção conseguimos 0.1 segundo
Ai é só incrementar 10x
Abraço

Enviado:
05 Jan 2011 06:48
por ze
...ou seja
interrupt timer1 //veja a sintaxe do seu compilador
{
//...reinicializa timer para interrupt a cada 0.1s
if (temp++>9)
{
temp=0;
contador++;
//...faça o que deve ser feito a cada segundo
}
}
lembrando que temp e contador devem ser variáveis globais
sucessos

Enviado:
05 Jan 2011 09:25
por mastk
Desculpe.
Na verdade eh uma pessima ideia o uso dessa interrupção, stack over flow em uma liguagem de mais alto nivel, indica que a CPU se perdeu e em hardware eh uma falha catastrofica para o programa, por isso essa interrupção, para o programar ter como se recobrar.

Enviado:
05 Jan 2011 10:33
por vtrx
Na verdade eh uma pessima ideia o uso dessa interrupção, stack over flow em uma liguagem de mais alto nivel, indica que a CPU se perdeu e em hardware eh uma falha catastrofica para o programa, por isso essa interrupção, para o programar ter como se recobrar.
Alem do mais,se eu não estiver errado,esse tipo de interrupção é implementado pelo compilador e não pelo Micro,isto significa que é impreciso.
Tá dificil

Enviado:
05 Jan 2011 13:09
por pccassin
Bom... Vou tentar ser mais especifico... quero usar a interrupção...TMR0IE no MPLAB e em Linguagem C... e sim a interrupção é de overflow de timer não tem nda de estouro de memoria...
Valeu Obrigado!
Obs:não precisa ser exatamente com o TMR0.

Enviado:
05 Jan 2011 17:36
por vtrx

Sem comentários...

Enviado:
05 Jan 2011 18:18
por pccassin
Não entendi o sem comentarios!? o que errei!? rsrsr

Enviado:
05 Jan 2011 22:42
por vtrx
Voce deu a volta ao mundo para perguntar sobre uma interrupção de TIMER.

Enviado:
06 Jan 2011 07:45
por ze
amiguinho a resposta pra tua dúvida já está respondida nos posts. se voce não sabe nada de pic e nada de c, o trajeto é outro. se for este o caso, não tem problema algum para os 'pacientes'. no entanto se sabe algo e para uma melhor condução do teu aprendizado, mostre o que voce já fez ou o que sabe fazer.
e por gentileza releia os posts anteriores. e vá!enfrente!
abç