• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

msr

Dúvidas com alguns "operadores"

2 mensagens neste tópico

Olá,

Tenho visto algumas linhas de código que nao tenho entendido. Se me pudessem esclarecer, agradecia. Aqui vao elas:

uint8_t pidTimer:1;
uint8_t dummy:7;

TCCR0A = (1<<CS00);

TIFR  |= _BV(OCIE0)|_BV(TOIE0);

UBRR0H = (BAUD_RR >> 8) & 0xff;

Será que me podem explicar o que é feito (de forma genérica) em cada uma destas linhas?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

uint8_t pidTimer:1;
uint8_t dummy:7;

Isto define pidTimer como uma variável do tipo uint8_t, mas só será formada por 1 bit, assim como dummy só será formada por 7 bits. São os chamados bit fields.

TCCR0A = (1<<CS00);

Realiza o shift aritmético à esquerda do 1.

TIFR  |= _BV(OCIE0)|_BV(TOIE0);

Realiza o OR (bit a bit) entre TIFR, _BV(OCIE0) e _BV(TOIE0)

http://en.wikipedia.org/wiki/Bitwise_operation

UBRR0H = (BAUD_RR >> 8) & 0xff;

Faz o shift aritmético à direita e depois realiza o AND bit a bit entre o resultado e o 0xff.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora