Ir ao conteúdo
  • Cadastre-se

José Maria F Silva

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

1
  1. Bom dia Amigos Eu programo em c para micro-controladores e estou com uma duvida num programa criado pelo compilador, gostaria de saber se algum dos amigos poderia me ajudar? eu não consegui entender bem esta estrutura e como manipula-la, na verdade eu uso muito pouco estruturas devido realmente sempre duvidas com elas, como manipula-las etc. Eu coloquei abaixo os comentários, gostaria de saber se esta correto, mas as duvidas são somente onde estão os meu comentários, no restante ok. Onde esta *rxTail na struct eu entendo que é um ponteiro para a variável uint8_t, porém no programa ele incrementa o rxtail mas eu entendo que o rxTail é apenas um endereço ai onde esta minha duvida, não teria que ser um buffer.?? typedef struct { /* RX Byte Q */ uint8_t *rxTail ; //aqui foi criado um ponteiro para apenas uma variável tipo inteira ?? uint8_t *rxHead ; /* TX Byte Q */ uint8_t *txTail ; uint8_t *txHead ; UART_BYTEQ_STATUS rxStatus ; UART_BYTEQ_STATUS txStatus ; } UART_OBJECT ; static UART_OBJECT uart2_obj ; void interrupt(void) { while((U2STAbits.URXDA == 1)) { *uart2_obj.rxTail = U2RXREG; // salva no end. da extruct apontado pelo ponteiro rxtail o dado presente em u2rxreg uart2_obj.rxTail++; //aqui não entendi,pois se eu tenho somente um endereço da struct não teria que ser um buffer if(uart2_obj.rxTail == (uart2_rxByteQ + UART2_CONFIG_RX_BYTEQ_LENGTH)) { uart2_obj.rxTail = uart2_rxByteQ; } uart2_obj.rxStatus.s.empty = false; if(uart2_obj.rxTail == uart2_obj.rxHead) { //Sets the flag RX full uart2_obj.rxStatus.s.full = true; break; } } }

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