Interrupção de overflow PIC

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Interrupção de overflow PIC

Mensagempor pccassin » 04 Jan 2011 14:42

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!
Pc Cassin_
pccassin
Bit
 
Mensagens: 9
Registrado em: 30 Nov 2010 12:48
Localização: BRAZIL

Mensagempor Andre_Cruz » 04 Jan 2011 14:50

pccassin,

Passa mais informações tipo:

*PIC
*Linguagem de programação

Fica mais fácil pro pessoal te ajudar.

Abraço

André Cruz
Andre_Cruz
Word
 
Mensagens: 559
Registrado em: 03 Jan 2009 14:06

Mensagempor pccassin » 04 Jan 2011 17:07

O PIC é o 18F2550 e a linguagem é C (mplab c18)...
Pc Cassin_
pccassin
Bit
 
Mensagens: 9
Registrado em: 30 Nov 2010 12:48
Localização: BRAZIL

Mensagempor mastk » 04 Jan 2011 18:45

Chamando rotinas demais? Passando contextos demais em cada chamada de rotina.
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor pccassin » 04 Jan 2011 19:36

Hein? como assim chamando rotinas demais!? hahaha não entendi... se possivel com muitooo poucas rotinass... se é isso que quer saber... rsrsrs
Pc Cassin_
pccassin
Bit
 
Mensagens: 9
Registrado em: 30 Nov 2010 12:48
Localização: BRAZIL

Mensagempor jorgeluiz » 05 Jan 2011 00:22

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
Avatar do usuário
jorgeluiz
Byte
 
Mensagens: 448
Registrado em: 26 Mar 2007 02:26

Mensagempor Fabio777 » 05 Jan 2011 06:19

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
Fabio777
Nibble
 
Mensagens: 62
Registrado em: 19 Fev 2008 11:26

Mensagempor ze » 05 Jan 2011 06:48

...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
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor mastk » 05 Jan 2011 09:25

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.
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor vtrx » 05 Jan 2011 10:33

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.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Tá dificil

Mensagempor pccassin » 05 Jan 2011 13:09

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.
Pc Cassin_
pccassin
Bit
 
Mensagens: 9
Registrado em: 30 Nov 2010 12:48
Localização: BRAZIL

Mensagempor vtrx » 05 Jan 2011 17:36

:shock: Sem comentários...
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Mensagempor pccassin » 05 Jan 2011 18:18

Não entendi o sem comentarios!? o que errei!? rsrsr
Pc Cassin_
pccassin
Bit
 
Mensagens: 9
Registrado em: 30 Nov 2010 12:48
Localização: BRAZIL

Mensagempor vtrx » 05 Jan 2011 22:42

Voce deu a volta ao mundo para perguntar sobre uma interrupção de TIMER.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Mensagempor ze » 06 Jan 2011 07:45

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ç
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Google [Bot] e 1 visitante

cron

x