Ir ao conteúdo
  • Cadastre-se

mrdores

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

0
  1. não está passando o programa bommu... o led não pisca, fica aceso e pronto, nada mais acontece mas se eu remover as configurações intcom ai funciona normalmente INTCON = 0b11011000; INTCON2 = 0b11011000; INTCON3 = 0b11011000; o circuito:
  2. Bom dia pessoal.... Funcionou no Proteus, quando fui para a protoboard nao funcionou, para debugar o código e saber até onde a inicialização estava chegando eu coloquei para piscar um led. No proteus funciona inclusive o "debug", já quando gravo (usando o pickit3) e coloco o pic na protobard o led do "debug" nao pisca, fica aceso direto. Meu conhecimento técnico de pic é muito baixo, eu nao faço a menor ideia do motivo, se puderem me ajudar mais uma vez fico agradecido. Tem um detalhe, quando eu comento a interrupção (configuração do intcom o restante funciona porém, como é de se esperar, sem interrupção. void main() { ADCON1 = 0b00001111; TRISB = 0b11111111; TRISD = 0b10000000; //d7 estou usando com input, para inicializar o RTC caso esta porta esteja em 5v, as demais como output PORTB = 0; PORTD = 0; // ja tentei com essas duas formas de iniciliar o intcon //INTCON = 0b11011000; // INTCON2 = 0b11011000; //INTCON3 = 0b11011000; // INTCON = 0b11011000; // INTCON2 = 0b11110101; //INTCON3 = 0b11011110; INT0F_bit = 0; INT1F_bit = 0; INT2F_bit = 0; LATD6_bit = 1; Delay_ms(1000); LATD6_bit = 0; Delay_ms(5000); UART1_Init(9600); Delay_ms(100); LATD6_bit = 1; Delay_ms(1000); LATD6_bit = 0; Delay_ms(5000); I2C1_Init(100000); //inicia comunication i2c //minute, hour, weekday, day, month, year (6 - Saturday) if(RD7_bit == 1) { //se d7 estiver alta inicio o relógio e pisco o led d5 WriteTime(0,2,7,22,11,17); LATD5_bit = 1; Delay_ms(1000); LATD5_bit = 0; Delay_ms(5000); } LATD6_bit = 1; Delay_ms(1000); LATD6_bit = 0; Delay_ms(5000); Sound_Init(&PORTD, 4); // inicia o buzzer init(); //Delay_ms(5000); //aguarda 5s para o arduino ficar pronto LATD6_bit = 1; Delay_ms(1000); LATD6_bit = 0; Delay_ms(5000); while (1) { ... } void interrupt(){ if(INT0F_bit==1) { //botão mais /* LATD0_bit = 0xFF; Delay_ms(100); LATD0_bit = 0x00; */ INT0F_bit = 0; alterado = 1; alterando = 1; valor++; if(tela == 6) { exibindo = 0; } } if(INT1F_bit == 1 ) { //botão Menu/ok /* LATD1_bit = 0xFF; Delay_ms(100); LATD1_bit = 0x00; */ INT1F_bit = 0; if(alterando) { //OK gravar = 1; exibindo = 1; alterado = 1; alterando = 0; }else{//menu exibindo = 1; alterado = 1; tela++; } } if(INT2F_bit == 1 ) { // botao menos /* LATD2_bit = 0xFF; Delay_ms(100); LATD2_bit = 0x00; */ INT2F_bit = 0; valor--; alterando = 1; alterado = 1; } o esquema elétrico é o mesmo, porém adicionado outras coisas como i2c para o rtc, serial para trocar informações com um arduino e acionamento de relés
  3. Funcionou Bommu Perneta, muito obrigado. Isadora Ferraz obrigado pelas dicas tb... o delay atrapalha mesmo. valeu!!
  4. Pessoal, estou tentando fazer a interrupçao externa no 18F4620 e não estou conseguindo.. creio que falta pouca coisa.. alguém consegue me ajudar? Estou usando MikroC, parti de um exemplo da internet.... void interrupt(){ if(INT0F_bit == 1 ) { LATD0_bit = 0xFF; Delay_ms(250); LATD0_bit = 0x00; Delay_ms(250); INT0F_bit = 0; } if(INT1F_bit == 1 ) { LATD1_bit = 0xFF; Delay_ms(250); LATD1_bit = 0x00; Delay_ms(250); INT1F_bit = 0; } if(INT2F_bit == 1 ) { LATD2_bit = 0xFF; Delay_ms(250); LATD2_bit = 0x00; Delay_ms(250); INT2F_bit = 0; } } void main() { ADCON0 = 1; TRISB = 1; // Set PORT B (only RB0) as input TRISD = 0; // Set PORT D as output LATD = 0x00; // Set all pin on PORT D Low INTEDG0_bit = 1; // Set interrupt on rising edge INT0IF_bit = 0; // Clear INT0 flag INT0IE_bit = 1; // Enable INT0 interrupts GIE_bit = 1; // Enable GLOBAL interrupts LATD0_bit = 0xFF; Delay_ms(250); LATD0_bit = 0x00; Delay_ms(250); LATD1_bit = 0xFF; Delay_ms(250); LATD1_bit = 0x00; Delay_ms(250); LATD2_bit = 0xFF; Delay_ms(250); LATD2_bit = 0x00; Delay_ms(250); while(1) { } }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!