Ir ao conteúdo
  • Cadastre-se

Nelson_nst

Membro Júnior
  • Posts

    5
  • Cadastrado em

  • Última visita

Tudo que Nelson_nst postou

  1. Bom dia Galera, sou novo por aqui e necessito da ajuda de vocês para resolver um problema com comunicação serial. Estou usando um 16F887 para receber uma informação via serial, porém o programa fica preso na interrupção serial ( int_rda ),mesmo que eu não envie nenhum comando, e não executa as instruções que esta dentro do While. Aguardo ajuda obrigado. Segue o código #include <16F887.h> #FUSES NOWDT //No Watch Dog Timer #FUSES INTRC_IO // habilitando o clock interno #FUSES IESO //Internal External Switch Over mode enabled #FUSES NOPUT //No Power Up Timer #FUSES NOMCLR //Master Clear pin enabled #FUSES NOPROTECT //Code not protected from reading #FUSES NOCPD //No EE protection #FUSES NOBROWNOUT //No Reset when brownout detected #FUSES FCMEN //Fail-safe clock monitor enabled #FUSES NOLVP //Low Voltage Programming on B3(PIC16) or B5(PIC18) #FUSES NODEBUG //No Debug mode for ICD #use delay(clock = 8000000) #use rs232(baud=9600, uart, bits=8, Parity=N, Stop=1) //****************************************************************************** // // Declarações de Hardware // //****************************************************************************** #define led_1 PIN_A0 #define led_2 PIN_A1 #define led_3 PIN_A2 #define led_4 PIN_A3 #define led_5 PIN_A4 #define led_6 PIN_A5 #define led_7 PIN_E0 #define led_8 PIN_E1 #define led_9 PIN_E2 #define led_10 PIN_C0 #define botao_1 PIN_C1 #define botao_2 PIN_C2 #define bota0_3 PIN_C3 #define botao_4 PIN_D0 #use fast_io(A) #use fast_io( #use fast_io(C) #use fast_io(D) #use fast_io(E) //****************************************************************************** // // Variáveis do Sistema // //****************************************************************************** unsigned char IMG[7]={0xAA, 0xD0, 0xcc, 0x33, 0xc3, 0x3c}; unsigned char str1[4]; //****************************************************************************** // // decalração de funções do Sistema // //****************************************************************************** // Enviar um comando void send_str(unsigned char *p, unsigned char s) { unsigned char m; for(m=0; m<s; m++) {putc(*p); p++;} } // Receber um comando void receber(){ int8 k; str1[0]=getchar(); while(str1[0]!= 0xAA){ str1[0]=getchar();} for(k=1;k<8;k++) {str1[k]=getchar();} str1[0]=0x00; } //****************************************************************************** // // Funções de Controle de Interrupções // //****************************************************************************** #int_RDA RDA_isr(){ disable_interrupts(INT_RDA); receber(); if(str1[3] == 0x01){ delay_ms(200); output_toggle(led_1);} if(str1[3] == 0x02){ delay_ms(200); output_toggle(led_2);} if(str1[3] == 0x03){ delay_ms(200); output_toggle(led_3);} if(str1[3] == 0x04){ delay_ms(200); output_toggle(led_4);} enable_interrupts(INT_RDA); } //****************************************************************************** // // Função Main() // //****************************************************************************** void main( void ) { int k = 0; set_tris_a(0b00000000); set_tris_b(0b00000000); set_tris_c(0b00001110); set_tris_d(0b00000001); set_tris_e(0b00000000); setup_adc_ports(NO_ANALOGS|VSS_VDD); // desabilita todas as portas analógicas setup_adc(ADC_OFF); // desabilita todos os comparadores setup_spi(FALSE); // desabilita cominicação spi // frequencia interna do pic é a frequencia do oscilador externo dividido por 4 setup_timer_0( RTCC_INTERNAL | RTCC_DIV_64 );// frequncia do clock dividida por 64 setup_timer_1( T1_INTERNAL | T1_DIV_BY_1 ); // frequencia do clock 1M dividido por 1 para timer 1 setup_timer_2( T2_DIV_BY_4, 0x65, 1 ); // frequencia do clock 1M divido por 1 enable_interrupts( INT_TIMER0 ); // habilita as interrupções geradas pelo timer0 enable_interrupts( INT_TIMER1 ); // habilita as interrupções geradas pelo timer1 enable_interrupts( GLOBAL ); // habilita as interrupções geradas pelo global enable_interrupts( INT_RDA ); // habilita as interrupções geradas pelo global // setup_ccp1( CCP_PWM ); // configura ccp1 ( pino c2 como pwm ) // setup_ccp2( CCP_PWM ); // configura ccp2 ( pino c1 como pwm ) setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard setup_oscillator(OSC_8MHZ); // set_pwm1_duty(0); // configura percentual do ciclo ativo do pwm // set_pwm2_duty(0); // configura percentual do ciclo ativo do pwm output_low(led_1); output_low(led_2); output_low(led_3); output_low(led_4); output_low(led_5); output_low(led_6); output_low(led_7); output_low(led_8); output_low(led_9); while( true ){ // laço principal laço principal output_high(led_5); delay_ms(100); output_low(led_5); output_high(led_6); delay_ms(100); output_low(led_6); output_high(led_7); delay_ms(100); output_low(led_7); output_high(led_8); delay_ms(100); output_low(led_8); //! output_toggle(pin_d4); //moitorando chegada de dados }// fim do laço while }// fim da função main
  2. Bom dia meus amigos sou novo por aqui e gostaria da ajuda de vocês ,,,para entender o que faz esta placa Mjoy, pois so hobbista e gosto muito de games.

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...