Ir ao conteúdo

Dúvida programação AVR com Atmel Studio


Fervolt

Posts recomendados

Postado

Boa noite pessoal,

Estou começando a programar um atmega8 e tenho algumas dúvidas. Gostaria da ajuda de vocês.

Instalei o Atmel Studio e gostaria de saber, para setar um bit de um port só existe a instrução:

PORTC |= (1<<PORTC1);

Quantos ciclos serão gastos nessa instrução?

Achei estranho ser assim, sendo que no set de instruções assembly existe o "SBI PORT, bit". Não tem uma instrução mais "direta" em C para fazer isso?

Outra dúvida, o Atmel Studio agora traz a linguagem C, preciso instalar mais alguma coisa como o gcc-avr ou winavr?

No momento estou usando somente o Atmel Studio e Khazama AVR para gravar.

Obrigado

Postado
Não tem uma instrução mais "direta" em C para fazer isso?

Não,mas geralmente o compilador tenta encaixar essa instrução,mas vai depender da complexidade do programa.

Eu mesmo tive que analisar as saidas em ASM do compilador C18 da Microchip para saber qual era a melhor sequencia gerada pelo compilador.

Não se esqueça que todo compilador tem a opção do ASM in line no seu código C ou Basic,mas é mais utilizado em rotinas grandes.

Postado

Obrigado pela resposta vtrx.

Olhando os arquivos gerados pelo atmel studio, encontrei o código em assembly (arquivo .lss) gerado pelo compilador e fiquei satisfeito, veja abaixo:

int main() {
DDRC |= (1<<DDC1); // set LED pin PD1 to output
38: a1 9a sbi 0x14, 1 ; 20
while (1) {
PORTC |= (1<<PORTC1); // drive PD1 high
3a: a9 9a sbi 0x15, 1 ; 21
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif

Ele adota justamente a instrução em assembly "sbi"

com esse arquivo eu posso ver a saída do compilador e tentar otimizar o código assim como eu faço com o PIC e CCS.

Problema resolvido, por gentileza moderador, pode fechar.

Obrigado

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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