Rotina básica de interrupção

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Rotina básica de interrupção

Mensagempor lpagano » 17 Dez 2006 17:01

Pessoal,

Seguinte, tenho que criar uma rotina de interrupção em C para o 16F877A da seguinte maneira: o meu programa principal está rodando normalmente e, quando eu der um LOW no pino RB4, ele execute a instrução da interrupção. Para sair da interrupção eu preciso tirar o LOW do pino RB4.


PROGRAMA PRINCIPAL:

loop:
output_B(0);
delay_ms(1000);
output_B(1);
delay_ms(1000);
output_B(2);
delay_ms(1000);
output_B(3);
delay_ms(1000);
goto loop;


INTERRUPÇÃO:

output_B(9);


Obrigado!!!
lpagano
Byte
 
Mensagens: 393
Registrado em: 06 Nov 2006 14:23

Mensagempor microeletronica » 17 Dez 2006 20:58

Entao meu amigo...

Ve soh... Fica melhor utilizar o Interrupt on change, que é a interrupcao de mudanca de estado, de nivel de 0 pra 1 ou 1 pra zero. Toda vez que houver uma mudanca de nivel, gerara uma interrupcao...

Entao... Os pinos de RB4 a 7 possuem esta caracteristicas. Vc pode fazer com que a cada interrupcao, a sua rotina de interrupocao apenas mude um status de um byte definido por vc, no seu programas... Nao acho interessante ficar preso numa inetrrurcao, esperando uma borda...

Isso pode ser feito, claro... Mas vc teria que colocar em um pino de interrupcao RB0 pór exemplo, que é uma inetrrupcao LOW, como esta precisando... e dai ficar preso la, e ficar fgazendo umas rotinas ali While !(Pino RB1). Nao acho isso elegante.

Procure contornar, tente utilizar a inbetrrupt on change, que eh um feature bem legal do PIC e bem facil de utilizar...
microeletronica
Byte
 
Mensagens: 158
Registrado em: 05 Dez 2006 18:22

Mensagempor lpagano » 18 Dez 2006 09:16

Valeu microeletronica,

Mas, poderia dar uma dica de como posso implementar basicamente o interrupt on change? Tem algum exemplo na web em que eu possa me "inspirar"?

Valeu de novo!
lpagano
Byte
 
Mensagens: 393
Registrado em: 06 Nov 2006 14:23

Mensagempor microeletronica » 18 Dez 2006 20:59

CCS vc tah usando?
MCC18?
microeletronica
Byte
 
Mensagens: 158
Registrado em: 05 Dez 2006 18:22

Mensagempor lpagano » 22 Dez 2006 06:35

Tô usando o CCS.

Valeu!
lpagano
Byte
 
Mensagens: 393
Registrado em: 06 Nov 2006 14:23

Mensagempor Ander_sil » 22 Dez 2006 12:07

Aproveitando esse tópico, posso usar esta função do Pic para funcionar como outra int. externa.
Tem como selecionar para qual port de B4 à B7 deve ocorrer a int, ou uma mudança em qualquer um desses pinos gera interrupção.

Minha versão do CCS não tem esse exemplo(MCC18), alguem pode mandar para min.

at.
Anderson Chrispim da Silva
chrispimdasilva@gmail.com
Ander_sil
Byte
 
Mensagens: 368
Registrado em: 30 Out 2006 09:58
Localização: Campinas - SP


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x