Resumo linguagem c para microcontroladores PIC usando MikroC

20,568 views
20,159 views

Published on

Breve resumo sobre linguagem C com foco no compilador mikro C

Published in: Technology
2 Comments
6 Likes
Statistics
Notes
No Downloads
Views
Total views
20,568
On SlideShare
0
From Embeds
0
Number of Embeds
2,145
Actions
Shares
0
Downloads
440
Comments
2
Likes
6
Embeds 0
No embeds

No notes for slide

Resumo linguagem c para microcontroladores PIC usando MikroC

  1. 1. Linguagem C Resumo da linguagem C com foco em desenvolvimento para microcontroladores PIC baseado na IDE MikroC for PIC Por : Fábio B. de Souza
  2. 2. 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;
  3. 3. Estrutura básica de um programa em C para microcontroladores void main() { //inicializações de hardware e software while(1) //loop infinito { /*tarefas a serem executadas pelo microcontrolador durante o funcionamento */ } }
  4. 4. 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 */
  5. 5. Representação numérica • Decimal: • valorDecimal = 125; • Binário: • PORTA=0b11010011; • Hexadecimal: • valor_hexa = 0xA4; • Octal: • valorOctal=075; • Caracter: • valorCarcter = ‘A’;
  6. 6. Tipos de Dados TIPO RESPRESENTA char caracteres int inteiros float e double valores com casas decimais (ponto flutuante) void nulos
  7. 7. Modificadores de tipos Modificador modificação signed Sinalizado Unsigned Não sinalizado Short Inteiro menor que o padrão Log Inteiro maior que o padrão
  8. 8. Tipos de dados no MikroC Tipos inteiros: TIPO Tamanho Range bit 1–bit 0 or 1 sbit 1–bit 0 or 1 (unsigned) char 1 byte 0 .. 255 signed char 1 byte - 128 .. 127 (signed) short (int) 1 byte - 128 .. 127 unsigned short (int) 1 byte 0 .. 255 (signed) int 2 byte -32768 .. 32767 unsigned (int) 2 byte 0 .. 65535 (signed) long (int) 4 byte -2147483648 .. 2147483647 unsigned long (int) 4byte 0 .. 4294967295
  9. 9. Tipos de dados no MikroC Tipo de ponto flutuante: Tipo Tamanho Range float 4 byte -1.5 * 1045 .. +3.4 * 1038 double 4 byte -1.5 * 1045 .. +3.4 * 1038 long double 4 byte -1.5 * 1045 .. +3.4 * 1038
  10. 10. Declaração de Variáveis Um 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; short y;
  11. 11. 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; }
  12. 12. 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)/ }
  13. 13. 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
  14. 14. 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
  15. 15. 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)
  16. 16. 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
  17. 17. 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
  18. 18. 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) RELE = 1;
  19. 19. 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) rele = 1; else rele = 0;
  20. 20. 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; }
  21. 21. 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; }
  22. 22. for  Forma geral: for( inicialização;condição;incremento) comando; Ou for( 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
  23. 23. 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; }
  24. 24. do-while • Este laço é uma variação do comando WHILE, sendo que neste caso o comando será executado antes de testa se a condição é verdadeira. • Forma geral: do { comandoA; comandoB; ... comandoN; } while (condição);

×