collapse

* Posts Recentes

Como reproteger as pontas de cobre do ferros de soldar? por vasco
[Ontem às 18:53]


é preciso ter cuidado com ESD? por vasco
[15 de Dezembro de 2018, 21:26]


Bibliotecas para arduino e drivers de stepper - o problema da 'distracção' por SerraCabo
[14 de Dezembro de 2018, 12:12]


Potênciometro 4.7 ou 5 KOhm com switch por brunus
[13 de Dezembro de 2018, 19:35]


Zener BZW04-105? por brunus
[11 de Dezembro de 2018, 17:34]


Artigo 11, 13 e os restantes por jm_araujo
[10 de Dezembro de 2018, 11:05]


Compra Colectiva Mouser N3-2018 (limite 25 Nov) por Hugu
[10 de Dezembro de 2018, 01:07]


Ajuda para reparar Luzes de LED de Natal por brunus
[09 de Dezembro de 2018, 00:59]


Usar steppers de 5 pontas como se fossem de 4 pontas por SerraCabo
[08 de Dezembro de 2018, 21:18]


LusoRobótica - Website - Estado actual por Tech_JA
[06 de Dezembro de 2018, 09:18]

Autor Tópico: Interrupção em 16f877A  (Lida 6353 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline rocha_rm

  • Mini Robot
  • *
  • Mensagens: 4
Interrupção em 16f877A
« em: 23 de Maio de 2010, 06:19 »
Estou a fazer a minha primeira interrupção em pic, usando o mikroc 8.2
Ao simular, não activa a interrupção quando carrego no botão. Penso que esteja tubo bem configurado.

void interrupt ()
{
INTCON.INTF = 0;
PORTB.F1 = ~PORTB.F1; 
}

void main(void)
{

  TRISB = 0b00000001; //Rb0 como entrada
  PORTB = 0;
  OPTION_REG= 0b11000000; //flanco ascendente
  INTCON.INTE = 1;
  INTCON.INTF = 0;
  INTCON.GIE = 1; //activar a interrupção

  for ( ; ; );
}

Offline maurosmartins

  • Mini Robot
  • *
  • Mensagens: 483
    • msm
Re: Interrupção em 16f877A
« Responder #1 em: 23 de Maio de 2010, 12:55 »
Olá rocha_rm, efectivamente parece estar bem configurado.

Será que não e do teu hardware?! E em termos de bits de configuração, estarão correctos?! Se puderes coloca aqui os que usaste.

Podias meter um pco de código antes para teres a certeza que o micro está a funcionar, e dps testavas a interrupção, mete por exemplo um led a piscar 5 vezes ou assim....

Cumprimentos, Mauro.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.586
  • Helpdesk do sitio
Re: Interrupção em 16f877A
« Responder #2 em: 23 de Maio de 2010, 13:31 »
Simuladores... Nunca podes confiar totalmente neles, testa isso em hardware real.
Avr fanboy

Offline rocha_rm

  • Mini Robot
  • *
  • Mensagens: 4
Re: Interrupção em 16f877A
« Responder #3 em: 23 de Maio de 2010, 19:04 »
Problema resolvido..
O problema era mesmo do proteus, não percebo porque não adicionava uma interrupção quando carregava num botao ligado ao Vcc. Tentei com entrada em degrau e ja aceitava. :)


Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.645
    • Electronic Gear for Musicians
Re: Interrupção em 16f877A
« Responder #4 em: 24 de Maio de 2010, 10:12 »
Em hardware real, cada vez que se pressiona e larga o botão, vão saltar dezenas ou centenas de interrupções.

É necessário criar um debounce para qualquer tecla/interruptor/fim-curso ligado a electrónica digital.

Entre 5ms e 10ms é suficiente. Se se puder ver as especificaçõs do botão, o fabricante inclui sempre o Settling Time, que indica para quanto deverá ser o atraso de debounce.


Offline rocha_rm

  • Mini Robot
  • *
  • Mensagens: 4
Re: Interrupção em 16f877A
« Responder #5 em: 24 de Maio de 2010, 23:45 »
Tem lógica, obrigado pelo esclarecimento ;)