Ir ao conteúdo
  • Cadastre-se
Fervolt

Dúvida programação AVR com Atmel Studio

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites
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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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

×