@Isadora Ferraz
é então kkk , agora é apenas os leds mudando , dps é o oled kkk, mas ta complicado de rodar isso aqui .
fiz desse jeito , sem a interrupção la em cima, no meu microc so ta assim:
obs: tentei colocar o CMCON , eu ja tentei outras vezes usa-lo ,mas não foi . ja vi usando esse na familia 16f , acho que na 18f não da, não colocando ele copila certo.
ah e aquele TRISE eu so tinha colocado ele porque tinha visto em um video ,e como meu programa não tava funiconando , achei que ele ajudaria, mesmo não achando ele necessário.
void main()
{
TRISA = 0x00;
TRISB = 0x01;
PORTB = 1;
ANSEL1_bit =0;
ANSEL10_bit=1;
PORTA=0b10;
for(;;)
{
while(RB0); //espera apertar
while(!RB0); //e soltar o botão
PORTA=0b01; //
while(RB0); //espera apertar
while(!RB0); //e soltar o botão
PORTA=0b10; //
}
}
Novamente o led RA1 comeca acesso é o botão não faz nada .
eu ja fiz uma vez um programa( usando os mesmo pinos) sem a interrupção , os leds piscaram certinho , quando abertava um botão , um acendia , abertava de novo , um apaga e outro acende , e assim varias vezes .Ai li que usando as interrupções seria melhor , vi varias aulas e cheguei nisso.
Com a interrupção coloquei assim , esse eu realmente não sei se esta correto , mas creio que seria assim .
Copilou certo , mas nenhum led acende ainda.
void interrupt(){
{ PORTA=0b10;
for(;;)
while(RB0); //espera apertar
while(!RB0); //e soltar o botão
PORTA=0b01; //
while(RB0); //espera apertar
while(!RB0); //e soltar o botão
PORTA=0b10; //
}
}
void main()
{
GIE_bit = 1; // habilita a interrupção global
PEIE_bit = 1; // habilita a interrupção dos perifericos
INT0IE_bit = 1; // habitilia a interrupção extrena
TNTEDG0_bit = 0; // alterar o hardware ( configurar a borda de decida )
void main()
{
TRISA = 0x00;
TRISB = 0x01;
PORTB = 1;
ANSEL1_bit =0;
ANSEL10_bit=1;
while (1)
{
}
}