Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor Analógico/Digital - ADC
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de Linguagem C
-
Upload
fabio-souza -
Category
Engineering
-
view
56 -
download
2
Transcript of Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de Linguagem C
Fábio Souza2015
Microcontroladores ARM Cortex M0+Aplicação em robôs autoguiados
Resumo básico de Linguagem C
Fábio Souza 2015
Porque usar linguagem C?
Características:•Estruturada;•Alto nível (comparada ao Assembly);•Facilidade de acesso ao hardware;•Portabilidade;•Curva de aprendizagem reduzida; •Reutilização de código;
Fábio Souza 2015
Estrutura básica de um programa em C para microcontroladores
void main() {
//inicializações
while(1) //loop infinito {
/*tarefas a serem executadas pelo microcontrolador duranteo funcionamento */
}}
Fábio Souza 2015
Comentários
São Utilizados para:◦ Documentação do software;◦ Exclusão de linhas durante a compilação.
Comentários de linha simples:
//este é um comentário de linha simples
Comentários de Múltiplas linhas:/* este é um comentário de múltiplas linhas*/
Fábio Souza 2015
Representação numérica• Decimal:
• valorDecimal = 125;
• Binário:• PORTA=0b11010011;
• Hexadecimal:• valor_hexa = 0xA4;
• Caracter:• valorCarcter = ‘A’;
Fábio Souza 2015
Declaração de VariáveisUm variável é declarada da seguinte forma:
<qualificador> + <tipo de dado> + <nome da variável> = <valor>;
Obs.: onde o valor pode ou não ser inicializado.
Exemplos: unsigned int valor = 12345;int contador;char y;
Fábio Souza 2015
Variável local• É declarada dentro de um bloco de instruções, é só pode se
acessada dentro deste bloco.• Exemplo:int delay(){
int valor1 =5;int valor2 =7;
return(valor1+valor2)/2;}
Fábio Souza 2015
Variável global• É declarada fora de bloco de função e pode ser acessada por todas as funções e
blocos de instruções.
• Exemplo:
•int valor1 =5;
int valor2 =7;
int media()
{
return(valor1+valor2)/2;
}
int soma()
{
return(valor1+valor2)/
}
Fábio Souza 2015
Operadores Aritméticos• Realizam operações matemáticas:
OPERADOR AÇÃO
+ Adição
- Subtração
* Multiplicação
/ Divisão
% Resto de divisão inteira
++ Incremento
-- Decremento
Fábio Souza 2015
Operadores Relacionais• Usados em testes condicionais para determinar relações
entre dados.
OPERADOR AÇÃO
> Maior que
>= Maior ou igual que
< Menor que
<= Menor ou igual que
== Igual a
!= Diferente de
Fábio Souza 2015
Operadores lógicos• São usados para realizar testes booleanos entre elementos
em um teste condicional
OPERADOR AÇÃO
&& AND (E)
|| OR (OU)
! NOT (NÃO)
Fábio Souza 2015
Operadores lógicos bit a bit• São utilizados para operações lógicas entre elementos ou
variáveis.
OPERADOR AÇÃO
& AND(E)
| OR(OU)
^ XOR (OU EXCLUSIVO)
~ NOT (NÃO)
>> Deslocamento à direita
<< Deslocamento à esquerda
Fábio Souza 2015
Associação de operadores• Abreviação entre a operação e atribuição
Forma expandida Forma reduzida
x = x + y x += y
x = x - y x -= y
x = x * y x *= y
x = x / y x /= y
x = x % y x %= y
x = x & y x &= y
x = x | y x |= y
x = x ^ y x ^= y
x = x << y x <<= y
x = x >> y x >>= y
Fábio Souza 2015
if• Utilizada para executar um comando ou bloco de
comandos no caso de uma determinada condição ser avaliada como verdadeira.
• Forma geral:• if(condição) comando;
• Exemplo:• if(temperatura < setPoint)ligaRele();
Fábio Souza 2015
if - else• Utilizado quando há a necessidade de tomar uma ação
caso a condição for avaliada como falsa.
if (condição) comandoA;else comandoB;
Exemplo:
if (temperatura < setpoint) ligaRele();else desligaRele();
Fábio Souza 2015
if - else• Para executar um bloco de códigos dentro da declaração if- else:if(condição){ comandoA1; //bloco de código para a condição verdadeira comandoaA2; ... comandoAn;}else{ comandoB1; //bloco de código para a condição falsa comandoB2; ... comandoBn; }
Fábio Souza 2015
switch• É utilizado para a realização de comparações sucessivas de uma forma
elegante, clara e eficiente.
switch(variável){case constante1:
comandoA;. . .
break; case constante2:
comandoB;. . .
break; . . . . . . default: comandoX;}
Fábio Souza 2015
forForma geral:
for( inicialização;condição;incremento) comando;Oufor( inicialização;condição;incremento) { Comando1; Comando2; . . . ComandoN;}
onde:• inicialização: essa seção conterá uma inicialização para a variável;• condição: que interromperá o laço• incremento: operação a cada iteração
Fábio Souza 2015
while• Repete um comando ou um conjunto de instruções
enquanto uma condição for avaliada como verdadeira.
• Forma geral:while(condição){comando1;comando2;...comandoN;
}