Ir ao conteúdo
  • Cadastre-se
Lucas_Gonçalves

PIC Erro ao definir o status de uma porta

Recommended Posts

    Estou com um problema no meu código em que não é muito bem visível,mas o MikroC diz existir.O suposto erro esta situado quando foi definido o status da porta RC2 do PIC16F877A como entrada:   TRISC.F2 = 1;

    Segue parte do código abaixo e o print do erro detectado pelo MikroC:

 //----------------------VARIAVEIS GLOBAIS ---------------------------------------
  unsigned int cap,velocidade,MetroSegundo,tempcap; // contadores de segundos
  char txt[16]; // converter um numero em string
  unsigned char mostra = 0; // flag que indica que é hora de mostrar algo no LCD
//---------  MODULO CCP --------------------------------------------------------------
    TRISC.F2 = 1;
    //TRISC.F2 = 1; //DEFININDO RC2 COMO ENTRADA
    T1CON = 0;
    CCP1CON = 1;       //Capture - rising edge -> borda desubida
    INTCON =  0;
    PIE1 = 1;
//-----------------------------------------------------------------------------
void inicializa_LCD(&PORTD)
  {
    Lcd_Init(); // Inicializa
    LCD_Cmd(LCD_CURSOR_OFF); // send command to LCD (cursor off) -> apaga cursor
    LCD_Cmd(LCD_CLEAR); // send command to LCD (clear LCD) -> Limpa display
  }
//-----------------------------------------------------------------------------
void mostra_no_LCD(void)
  {
    LCD_Cmd(LCD_CLEAR); // send command to LCD (clear LCD)
    WordToStr(velocidade,txt); Lcd_Out(1,1,txt);
    Lcd_Out(1,4,"Km/h");
  }

 

ERRO_MICRO.PNG

Compartilhar este post


Link para o post
Compartilhar em outros sites
6 minutos atrás, Lucas_Gonçalves disse:

    Estou com um problema no meu código em que não é muito bem visível,mas o MikroC diz existir.O suposto erro esta situado quando foi definido o status da porta RC2 do PIC16F877A como entrada:   TRISC.F2 = 1;

    Segue parte do código abaixo e o print do erro detectado pelo MikroC:


 //----------------------VARIAVEIS GLOBAIS ---------------------------------------
  unsigned int cap,velocidade,MetroSegundo,tempcap; // contadores de segundos
  char txt[16]; // converter um numero em string
  unsigned char mostra = 0; // flag que indica que é hora de mostrar algo no LCD
//---------  MODULO CCP --------------------------------------------------------------
    TRISC.F2 = 1;
    //TRISC.F2 = 1; //DEFININDO RC2 COMO ENTRADA
    T1CON = 0;
    CCP1CON = 1;       //Capture - rising edge -> borda desubida
    INTCON =  0;
    PIE1 = 1;
//-----------------------------------------------------------------------------
void inicializa_LCD(&PORTD)
  {
    Lcd_Init(); // Inicializa
    LCD_Cmd(LCD_CURSOR_OFF); // send command to LCD (cursor off) -> apaga cursor
    LCD_Cmd(LCD_CLEAR); // send command to LCD (clear LCD) -> Limpa display
  }
//-----------------------------------------------------------------------------
void mostra_no_LCD(void)
  {
    LCD_Cmd(LCD_CLEAR); // send command to LCD (clear LCD)
    WordToStr(velocidade,txt); Lcd_Out(1,1,txt);
    Lcd_Out(1,4,"Km/h");
  }

 

ERRO_MICRO.PNG

tente TRISC2_bit = 0x01;

adicionado 3 minutos depois
agora, Luan Borges disse:

tente TRISC2_bit = 0x01;

ou se é só ela que você quer usar como entrada, ja identifica os outros pino,  tipo, TRISC = 0x10; = todos como saída menos o RC2_bit, ou TRISC = 0xFF; = Todos os pino como entrada 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou utilizando outras portas como entrada também,não somente a porta RC2 como entrada.Não tenho a mínima ideia de como resolver esse erro.

 

Com a alteração recomendada, foi identificado um erro na mesma linha,mas um pouco diferente do primeiro erro:

 1 erro:   "   ; expected,but '.' found   "  

 

 agora o erro identificado pelo MikroC foi:   "  ; expected,but '=' found  "

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente DENTRO do main()

void main(void)

{
...
//--------- modulo ccp --------------------------------------------------------------
trisc.f2 = 1; //trisc.f2 = 1; //definindo rc2 como entrada
t1con = 0;
ccp1con = 1; //capture - rising edge -> borda desubida
intcon = 0;
pie1 = 1;

coloquei em maiusculo mas ficou minusculo... estranho

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×