Ir ao conteúdo
  • Cadastre-se
Bruno Ciello Padilha

PIC dsPIC - Como receber uma string da UART somente ao chamar uma função?

Recommended Posts

Preciso receber uma string via UART no dsPIC30F4013 somente ao chamar uma função. O dispositivo conectado ao RX envia informações sem parar, mas eu preciso dessas informações somente algumas vezes, por isso preciso que essa informação seja recebida somente ao chamar uma função.

 

Meu código atual recebe dados da UART toda vez que o dispositivo envia algo.

 

int k;

void __attribute__((__interrupt__, auto_psv)) _U1RXInterrupt(void) {

            IFS0bits.U1RXIF = 0;

            array[k++] = U1RXREG;

            if (k == 10) {

                     k = 0;

            }

}

 

Como devo proceder para que eu receba essa string de 10 posições, sem perder dados, somente ao chamar um função?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Bruno Ciello Padilha ,

 

Crie um buffer que receba cada dado por interrupção , e mantenha o que você recebe nele. Quando precisar dos dados, pegue do buffer.

 

Pode ser o famoso buffer circular.

 

Paulo

Editado por aphawk
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porém como eu faço pra ativar a interrupção somente quando eu preciso e desativa-la quando o buffer estiver cheio? 

Nas minhas tentativas de usar a interrupção, eu conseguia ativar, mas como o dispositivo nunca para de mandar dados, a interrupção nunca finalizava.

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

×