AVR_pt
63 pág.

AVR_pt


DisciplinaTecnologias Web3.427 materiais10.201 seguidores
Pré-visualização23 páginas
Números em formato ASCII...........................................................................................................31
Manipulação de bits.............................................................................................................................31
Avr-Asm-Tutorial 2 http://www.avr-asm-tutorial.net
Desloca e rotaciona..............................................................................................................................32
Somando, subtraindo e comparando....................................................................................................33
Conversão de formatos numéricos......................................................................................................35
Multiplicação.......................................................................................................................................35
Multiplicação decimal....................................................................................................................35
Multiplicação binária......................................................................................................................36
Programa em Assembler AVR.......................................................................................................36
Binary rotation................................................................................................................................37
Multiplicação no studio..................................................................................................................37
Divisão.................................................................................................................................................39
Divisão decimal..............................................................................................................................39
Binary division...............................................................................................................................39
Passos do programa durante a divisão............................................................................................40
Divisão no simulador......................................................................................................................40
Conversão numérica............................................................................................................................43
Frações decimais.................................................................................................................................43
Conversões lineares........................................................................................................................43
Exempl0 1: Conversor AD 8­bit para saída decimal com ponto fixo.............................................44
Exemplo 2: Conversor AD de 10 bits com saída decimal fixa.......................................................45
Anexo.......................................................................................................................................................46
Instruções ordenadas por função.........................................................................................................46
Lista de Diretivas e Instruções em ordem alfabética...........................................................................48
Diretivas de Assembler em ordem alfabética.................................................................................48
Instruções em ordem alfabética......................................................................................................48
Detalhes das Portas..............................................................................................................................50
Registrador de Status, Flags do Acumulador.................................................................................50
Ponteiro de pilha.............................................................................................................................51
SRAM e controle externo de interrupções......................................................................................51
Controle de Interrupção Externo.....................................................................................................52
Controle do Timer de Interrupção..................................................................................................52
Timer/Contador 0............................................................................................................................53
Timer/Contador 1............................................................................................................................54
Watchdog­Timer.............................................................................................................................55
EEPROM........................................................................................................................................56
Interface de Periféricos Seriais (SPI)..............................................................................................56
UART.............................................................................................................................................57
Analog Comparator........................................................................................................................58
Portas E/S.......................................................................................................................................59
Portas, ordem alfabética......................................................................................................................59
Lista de abreviações............................................................................................................................60
Avr-Asm-Tutorial 1 http://www.avr-asm-tutorial.net
Porque aprender Assembler?
Assembler ou outras linguagens, esta é a questão. Porque eu deveria aprender mais uma linguagem, se 
eu já conheço outras linguagens de programação? O melhor argumento: enquanto você viver na França, 
poderá sobreviver falando Inglês, mas você nunca se sentirá em casa, e a vida fica difícil. Você pode 
apenas continuar desta forma, mas isto não é apropriado. Se as coisas ficarem complicadas, você deverá 
usar a linguagem corrente do país
Muitas pessoas já experientes em programação de AVRs e que usam linguagens de alto nível em seu 
trabalho normal, recomendam que os iniciantes comecem aprendendo linguagem assembly. A razão para 
isto é que, algumas vezes, podem ocorrer certas situações, como:
\u25cf se bugs têm que ser analizados,
\u25cf se o programa faz coisas diferentes das que foram escritas e são esperadas,
\u25cf se linguagens de alto nível não suportam o uso de certas características do hardware,
\u25cf se rotinas em que a temporização é crítica requerem porções de linguagem assembly,
é necessário entender a linguagem assembly, e.g., entender o que os compiladores de linguagens de alto 
nível produzem. Sem compreender a linguagem assembly, você não terá chance de ir adiante nestes 
casos.
Curta e fácil
Os comandos assembler são traduzidos um a um para serem comandos executados pela máquina. O 
processador necessita apenas executar o que você quer fazer e o necessário para executar a tarefa. 
Nenhum loop extra ou características desnecessárias poluem o código. Se o espaço para o seu programa 
é curto e limitado e você terá que otimizar seu programa para caber na memória, assembler é a escolha 
número um. Programas mais curtos são mais fáceis de depurar (\u201cdebugar\u201d), cada passo faz sentido.
Veloz
Como apenas os passos necessários são executados, os programas em assembly são tão rápidos quanto 
possível. Aplicações onde o tempo é crítico, como medições de tempo que devam ter boa performance, 
sem que haja um