Ir ao conteúdo
  • Cadastre-se

Kaleeph

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. Olá a todos, sou novo por aqui, e venho por meio deste pedir a ajuda em um problema que estou tendo em um projeto. É o seguinte: Estou utilizando dois PIC16F628A, sendo um transmissor e o outro receptor e dois módulos HC-05, um como mestre e o outro como escravo, o compilador para o programa dos PICs é o MPLAB IDE e a programação em Assembly. Os PICs estão trabalhando com um oscilador externo (cristal) de 12 Mhz, todos os componentes estão configurados para um Baud Rate de 38400 bps. A intenção é utilizar 4 botões no transmissor e 4 Leds para teste no receptor. Quando um botão é pressionado acende 2 leds selecionados no programa, a cada botao os 2 leds alternam, e quando não há botões pressionados os leds não acendem. O teste foi realizado antes sem os módulos Bluetooth, os pics foram programados para uma comunicação serial assíncrona, e utilizando os terminais RX e TX, os leds não acendiam como desejado, um deles sempre ficava aceso, e os outros nao acendiam como desejado, o teste foi feito com o bluetooth e funcionou da mesma forma. A solução foi acrescentar uma rotina de tempo na programação do receptor que destacarei quando mostrar o código, desta forma os pics sem os bluetooth funcionaram perfeitamente como desejado, mas com o bluetooth não funciona, parece q ele trava ao receber a informaçao, se eu deixo um botao pressionado e reinicio o circuito receptor, ele acende os leds desejados e não realizada mais nada, se faço o mesmo procedimento com outro botao, ele acende os leds desejados com o determinado botao e trava. Antes da nova rotina de tempo o bluetooth funcionava perfeitamente, e até com boa distancia, mas não com os leds desejados. Alguém teria uma ideia do que pode estar causando este problema? Ja tentei resolver de todas as formas que meu breve conhecimento permitiu. Código do receptor: (sem as configurações iniciais) INICIO BANK1 MOVLW B'00111111' MOVWF TRISA MOVLW B'00000110' MOVWF TRISB MOVLW B'10000100' MOVWF OPTION_REG MOVLW B'00000000' MOVWF INTCON BANK0 MOVLW B'00000111' MOVWF CMCON CLRF PORTA CLRF PORTB MAIN CALL RECEBER GOTO MAIN RECEBER BANK1 BSF TXSTA,BRGH MOVLW .19 MOVWF SPBRG BCF TXSTA,SYNC BANK0 BSF RCSTA,SPEN BSF RCSTA,SREN BSF RCSTA,CREN CALL MOSTRAR RETURN MOSTRAR MOVLW B'11110000' ANDWF RCREG,W MOVWF PORTB CALL TEMPO ;<<< Modificação que ser a fonte do problema (nova rotina de tempo) RETURN TEMPO movlw .215 movwf Reg_1 movlw .156 movwf Reg_2 decfsz Reg_1,F goto $-1 decfsz Reg_2,F goto $-3 RETURN END Código do transmissor: (sem configurações iniciais) MAIN BTFSS BT1 GOTO $+2 GOTO AJUSTE1 BTFSS BT2 GOTO $+2 GOTO AJUSTE2 BTFSS BT3 GOTO $+2 GOTO AJUSTE3 BTFSS BT4 GOTO $+2 GOTO AJUSTE4 MOVLW B'00000000' MOVWF TXREG CALL ENVIAR GOTO MAIN AJUSTE1 MOVLW B'10100000' MOVWF TXREG CALL ENVIAR GOTO MAIN AJUSTE2 MOVLW B'01010000' MOVWF TXREG CALL ENVIAR GOTO MAIN AJUSTE3 MOVLW B'10010000' MOVWF TXREG CALL ENVIAR GOTO MAIN AJUSTE4 MOVLW B'01100000' MOVWF TXREG CALL ENVIAR GOTO MAIN ENVIAR BANK1 BSF TXSTA,BRGH MOVLW .19 MOVWF SPBRG BCF TXSTA,SYNC BANK0 BSF RCSTA,SPEN BANK1 BSF TXSTA,TXEN BTFSS TXSTA,TRMT GOTO $-1 BANK0 CALL TEMPO RETURN TEMPO movlw .215 movwf Reg_1 movlw .156 movwf Reg_2 decfsz Reg_1,F goto $-1 decfsz Reg_2,F goto $-3 RETURN END

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!