SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
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
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;
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 */
}
}
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
*/
Representação numérica
• Decimal:
• valorDecimal = 125;
• Binário:
• PORTA=0b11010011;
• Hexadecimal:
• valor_hexa = 0xA4;
• Octal:
• valorOctal=075;
• Caracter:
• valorCarcter = ‘A’;
Tipos de Dados
TIPO RESPRESENTA
char caracteres
int inteiros
float e double
valores com casas decimais
(ponto flutuante)
void nulos
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
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
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
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;
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;
}
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)/
}
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
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
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)
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
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
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;
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;
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;
}
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;
}
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
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;
}
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);

Weitere ähnliche Inhalte

Was ist angesagt?

Exercicios diodo-e-retificadores-v (1)
Exercicios diodo-e-retificadores-v (1)Exercicios diodo-e-retificadores-v (1)
Exercicios diodo-e-retificadores-v (1)
Ivanir Silva
 
Metrologia Industrial - Uma Função de Gestão da Qualidade - Paulo Cabral - IE...
Metrologia Industrial - Uma Função de Gestão da Qualidade - Paulo Cabral - IE...Metrologia Industrial - Uma Função de Gestão da Qualidade - Paulo Cabral - IE...
Metrologia Industrial - Uma Função de Gestão da Qualidade - Paulo Cabral - IE...
Paulo Cabral
 
Apostila resistencia dos_materiais_parte_1
Apostila resistencia dos_materiais_parte_1Apostila resistencia dos_materiais_parte_1
Apostila resistencia dos_materiais_parte_1
Hudson Luiz Pissini
 

Was ist angesagt? (20)

1 motores de indução
1 motores de indução1 motores de indução
1 motores de indução
 
Festo
FestoFesto
Festo
 
Transformadores
TransformadoresTransformadores
Transformadores
 
Custos industria calcadista
Custos industria calcadistaCustos industria calcadista
Custos industria calcadista
 
Apostila para a Correção do fator de potência
Apostila para a Correção do fator de potênciaApostila para a Correção do fator de potência
Apostila para a Correção do fator de potência
 
Medidas eletricas senai
Medidas eletricas   senaiMedidas eletricas   senai
Medidas eletricas senai
 
Turbina a Vapor
Turbina a VaporTurbina a Vapor
Turbina a Vapor
 
Estática e dinâmica dos fluídos
Estática e dinâmica dos fluídosEstática e dinâmica dos fluídos
Estática e dinâmica dos fluídos
 
Plano de negocios
Plano de negociosPlano de negocios
Plano de negocios
 
Biografia Influenciadores Robótica
Biografia Influenciadores RobóticaBiografia Influenciadores Robótica
Biografia Influenciadores Robótica
 
Exercicios diodo-e-retificadores-v (1)
Exercicios diodo-e-retificadores-v (1)Exercicios diodo-e-retificadores-v (1)
Exercicios diodo-e-retificadores-v (1)
 
Maquinas elétricas ( Senai )
Maquinas elétricas ( Senai )Maquinas elétricas ( Senai )
Maquinas elétricas ( Senai )
 
Curso LIDE - Leitura e Interpretação de Diagramas Elétricos
Curso LIDE - Leitura e Interpretação de Diagramas ElétricosCurso LIDE - Leitura e Interpretação de Diagramas Elétricos
Curso LIDE - Leitura e Interpretação de Diagramas Elétricos
 
Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
 
Ebook subestacao
Ebook subestacaoEbook subestacao
Ebook subestacao
 
Aula30
Aula30Aula30
Aula30
 
Metrologia Industrial - Uma Função de Gestão da Qualidade - Paulo Cabral - IE...
Metrologia Industrial - Uma Função de Gestão da Qualidade - Paulo Cabral - IE...Metrologia Industrial - Uma Função de Gestão da Qualidade - Paulo Cabral - IE...
Metrologia Industrial - Uma Função de Gestão da Qualidade - Paulo Cabral - IE...
 
Mecanismos
MecanismosMecanismos
Mecanismos
 
Apostila resistencia dos_materiais_parte_1
Apostila resistencia dos_materiais_parte_1Apostila resistencia dos_materiais_parte_1
Apostila resistencia dos_materiais_parte_1
 
Teste transformador
Teste transformadorTeste transformador
Teste transformador
 

Andere mochten auch

Apresentação curso pic básico fbs eletrônica
Apresentação   curso pic básico fbs eletrônicaApresentação   curso pic básico fbs eletrônica
Apresentação curso pic básico fbs eletrônica
Fabio Souza
 

Andere mochten auch (11)

Apostila cpic
Apostila cpicApostila cpic
Apostila cpic
 
Curso mbed na KL25Z
Curso mbed na KL25ZCurso mbed na KL25Z
Curso mbed na KL25Z
 
Fundamentos de Logica de Programação | Linguagem C
Fundamentos de Logica de Programação | Linguagem CFundamentos de Logica de Programação | Linguagem C
Fundamentos de Logica de Programação | Linguagem C
 
Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladores
 
Internet das Coisas (Internet of Things - IoT)
Internet das Coisas (Internet of Things - IoT)Internet das Coisas (Internet of Things - IoT)
Internet das Coisas (Internet of Things - IoT)
 
Apresentação curso pic básico fbs eletrônica
Apresentação   curso pic básico fbs eletrônicaApresentação   curso pic básico fbs eletrônica
Apresentação curso pic básico fbs eletrônica
 
Resumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroCResumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroC
 
Apostila Arduino - FBS Eletrônica
Apostila Arduino - FBS EletrônicaApostila Arduino - FBS Eletrônica
Apostila Arduino - FBS Eletrônica
 
Introdução a estrutura de dados josé lucas rangel - raulzinho.cb@hotmail.com
Introdução a estrutura de dados   josé lucas rangel - raulzinho.cb@hotmail.comIntrodução a estrutura de dados   josé lucas rangel - raulzinho.cb@hotmail.com
Introdução a estrutura de dados josé lucas rangel - raulzinho.cb@hotmail.com
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Ähnlich wie Resumo Linguagem C

Prática da disciplina de laboratório de conversão de energia
Prática da disciplina de laboratório de conversão de energiaPrática da disciplina de laboratório de conversão de energia
Prática da disciplina de laboratório de conversão de energia
Heitor Galvão
 
Linguagem c-para-microcontroladores
Linguagem c-para-microcontroladoresLinguagem c-para-microcontroladores
Linguagem c-para-microcontroladores
34macchia34
 
LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08
Carlos Santos
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
Carlos Santos
 
Projeto de uma controladora de drivers
Projeto de uma controladora de driversProjeto de uma controladora de drivers
Projeto de uma controladora de drivers
Rodrigo Almeida
 

Ähnlich wie Resumo Linguagem C (20)

Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
 
Vhdl
VhdlVhdl
Vhdl
 
Prática da disciplina de laboratório de conversão de energia
Prática da disciplina de laboratório de conversão de energiaPrática da disciplina de laboratório de conversão de energia
Prática da disciplina de laboratório de conversão de energia
 
Visualg
VisualgVisualg
Visualg
 
Linguagem c-para-microcontroladores
Linguagem c-para-microcontroladoresLinguagem c-para-microcontroladores
Linguagem c-para-microcontroladores
 
C pic
C picC pic
C pic
 
Desenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosDesenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcados
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
 
Ponteiros de Função
Ponteiros de FunçãoPonteiros de Função
Ponteiros de Função
 
LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08
 
Debugging tips and tricks
Debugging tips and tricksDebugging tips and tricks
Debugging tips and tricks
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
 
Projeto de uma controladora de drivers
Projeto de uma controladora de driversProjeto de uma controladora de drivers
Projeto de uma controladora de drivers
 
Webinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosWebinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcados
 
2 controle fluxo
2 controle fluxo2 controle fluxo
2 controle fluxo
 
TDC2013 Otimizando-C
TDC2013 Otimizando-CTDC2013 Otimizando-C
TDC2013 Otimizando-C
 
Aula de C e C++
Aula de C e C++Aula de C e C++
Aula de C e C++
 
Introdução à programação embarcada
Introdução à programação embarcadaIntrodução à programação embarcada
Introdução à programação embarcada
 
Kernel cooperativo
Kernel cooperativoKernel cooperativo
Kernel cooperativo
 
Mini-curso Programação Paralela e Distribuída
Mini-curso Programação Paralela e DistribuídaMini-curso Programação Paralela e Distribuída
Mini-curso Programação Paralela e Distribuída
 

Kürzlich hochgeladen

Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geral
AntonioVieira539017
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
tatianehilda
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 

Kürzlich hochgeladen (20)

Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdfAPRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geral
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
Renascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDFRenascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDF
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 

Resumo Linguagem C

  • 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. 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. 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. 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. Representação numérica • Decimal: • valorDecimal = 125; • Binário: • PORTA=0b11010011; • Hexadecimal: • valor_hexa = 0xA4; • Octal: • valorOctal=075; • Caracter: • valorCarcter = ‘A’;
  • 6. Tipos de Dados TIPO RESPRESENTA char caracteres int inteiros float e double valores com casas decimais (ponto flutuante) void nulos
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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);