SlideShare uma empresa Scribd logo
Fábio Souza
2015
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 durante
o 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
Tipos de Dados
Tipos Inteiros - ANSI C (ISO 89)
Fábio Souza 2015
Tipos de dados
Tipos inteiros - ISO C99
Fábio Souza 2015
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;
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
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
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;
}
Fábio Souza 2015
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);

Mais conteúdo relacionado

Mais procurados

Php Básico - Parte 1
Php Básico - Parte 1Php Básico - Parte 1
Php Básico - Parte 1
Marcus Camargo
 
Algoritmos Aula 05
Algoritmos Aula 05Algoritmos Aula 05
Algoritmos Aula 05
IBTA Turma de TI 2009
 
Operadores Java
Operadores JavaOperadores Java
Operadores Java
Raphael Marques
 
Debugging tips and tricks
Debugging tips and tricksDebugging tips and tricks
Debugging tips and tricks
Tales Andrade
 
Funções em C - Prof. Yandre
Funções em C - Prof. YandreFunções em C - Prof. Yandre
Funções em C - Prof. Yandre
marcosnem
 
Introdução ao Java 5
Introdução ao Java 5Introdução ao Java 5
Introdução ao Java 5
Maurício Linhares
 
Aula14 - Funções em PHP
Aula14 - Funções em PHPAula14 - Funções em PHP
Aula14 - Funções em PHP
Jorge Ávila Miranda
 
Comandos e expressões
Comandos e expressõesComandos e expressões
Comandos e expressões
Sérgio Souza Costa
 
Aula 04
Aula 04Aula 04
Aula 04
graconlima
 
Aula18 Teste Software
Aula18 Teste SoftwareAula18 Teste Software
Aula18 Teste Software
Marco Silva
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcional
Péricles Miranda
 
Programação C - Aula 2
Programação C - Aula 2Programação C - Aula 2
Programação C - Aula 2
Dalton Valadares
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
Sérgio Souza Costa
 
F sharp e o paradigma funcional
F sharp e o paradigma funcionalF sharp e o paradigma funcional
F sharp e o paradigma funcional
Evandro Souza
 
Algoritmos - capítulo 5
Algoritmos - capítulo 5Algoritmos - capítulo 5
Algoritmos - capítulo 5
Carlos Padilla Severo
 
6 alocacao sequencial - pilhas
6   alocacao sequencial - pilhas6   alocacao sequencial - pilhas
6 alocacao sequencial - pilhas
Ricardo Bolanho
 

Mais procurados (16)

Php Básico - Parte 1
Php Básico - Parte 1Php Básico - Parte 1
Php Básico - Parte 1
 
Algoritmos Aula 05
Algoritmos Aula 05Algoritmos Aula 05
Algoritmos Aula 05
 
Operadores Java
Operadores JavaOperadores Java
Operadores Java
 
Debugging tips and tricks
Debugging tips and tricksDebugging tips and tricks
Debugging tips and tricks
 
Funções em C - Prof. Yandre
Funções em C - Prof. YandreFunções em C - Prof. Yandre
Funções em C - Prof. Yandre
 
Introdução ao Java 5
Introdução ao Java 5Introdução ao Java 5
Introdução ao Java 5
 
Aula14 - Funções em PHP
Aula14 - Funções em PHPAula14 - Funções em PHP
Aula14 - Funções em PHP
 
Comandos e expressões
Comandos e expressõesComandos e expressões
Comandos e expressões
 
Aula 04
Aula 04Aula 04
Aula 04
 
Aula18 Teste Software
Aula18 Teste SoftwareAula18 Teste Software
Aula18 Teste Software
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcional
 
Programação C - Aula 2
Programação C - Aula 2Programação C - Aula 2
Programação C - Aula 2
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
F sharp e o paradigma funcional
F sharp e o paradigma funcionalF sharp e o paradigma funcional
F sharp e o paradigma funcional
 
Algoritmos - capítulo 5
Algoritmos - capítulo 5Algoritmos - capítulo 5
Algoritmos - capítulo 5
 
6 alocacao sequencial - pilhas
6   alocacao sequencial - pilhas6   alocacao sequencial - pilhas
6 alocacao sequencial - pilhas
 

Destaque

Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...
Fabio Souza
 
Lecture ready class 5
Lecture ready class 5Lecture ready class 5
Lecture ready class 5
Les Davy
 
Cosug 2012-lzy
Cosug 2012-lzyCosug 2012-lzy
Cosug 2012-lzy
OpenCity Community
 
Vesterinen: Etsivä nuorisotyö, ammattina välittäminen
Vesterinen: Etsivä nuorisotyö, ammattina välittäminenVesterinen: Etsivä nuorisotyö, ammattina välittäminen
Vesterinen: Etsivä nuorisotyö, ammattina välittäminen
Kouluterveyskysely
 
Empacotamento e backport de aplicações em debian
Empacotamento e backport de aplicações em debianEmpacotamento e backport de aplicações em debian
Empacotamento e backport de aplicações em debian
Andre Ferraz
 
Doublerbuxtutorial
DoublerbuxtutorialDoublerbuxtutorial
Doublerbuxtutorialcutiekate78
 
Link Building With Twitter
Link Building With TwitterLink Building With Twitter
Link Building With Twitter
Aman Talwar
 
Elements, Compounds & Mixtures Day 3
Elements, Compounds & Mixtures Day 3Elements, Compounds & Mixtures Day 3
Elements, Compounds & Mixtures Day 3
jmori1
 
Privatsparande
PrivatsparandePrivatsparande
Privatsparande
GiftIdeasForBoyfriend
 
06 enterprise resource planning
06 enterprise resource planning06 enterprise resource planning
06 enterprise resource planning
Arip Doanx
 
Goede leiders zijn goede verhalenvertellers - Hans Donckers - Beanmachine
Goede leiders zijn goede verhalenvertellers - Hans Donckers - BeanmachineGoede leiders zijn goede verhalenvertellers - Hans Donckers - Beanmachine
Goede leiders zijn goede verhalenvertellers - Hans Donckers - Beanmachine
Antwerp Management School
 
Options for filmingh
Options for filminghOptions for filmingh
Options for filmingh
FirstClassProductions
 
Model answers
Model answers Model answers
Model answers
Marian Domeni
 
Multimedia01
Multimedia01Multimedia01
Multimedia01
Les Davy
 
Infográfico Pessoal
Infográfico PessoalInfográfico Pessoal
Infográfico Pessoal
carmelitadesign
 
Notam Sul/Sudeste - 01-mai-16
Notam Sul/Sudeste - 01-mai-16Notam Sul/Sudeste - 01-mai-16
Notam Sul/Sudeste - 01-mai-16
Carlos Carvalho
 
My life
My lifeMy life
My life
dcbabb
 
Walking the talk - 3 insights from Behavior Design
Walking the talk - 3 insights from Behavior DesignWalking the talk - 3 insights from Behavior Design
Walking the talk - 3 insights from Behavior Design
Angad Singh
 

Destaque (20)

Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...
 
Lecture ready class 5
Lecture ready class 5Lecture ready class 5
Lecture ready class 5
 
Cosug 2012-lzy
Cosug 2012-lzyCosug 2012-lzy
Cosug 2012-lzy
 
Vesterinen: Etsivä nuorisotyö, ammattina välittäminen
Vesterinen: Etsivä nuorisotyö, ammattina välittäminenVesterinen: Etsivä nuorisotyö, ammattina välittäminen
Vesterinen: Etsivä nuorisotyö, ammattina välittäminen
 
Empacotamento e backport de aplicações em debian
Empacotamento e backport de aplicações em debianEmpacotamento e backport de aplicações em debian
Empacotamento e backport de aplicações em debian
 
Doublerbuxtutorial
DoublerbuxtutorialDoublerbuxtutorial
Doublerbuxtutorial
 
Link Building With Twitter
Link Building With TwitterLink Building With Twitter
Link Building With Twitter
 
Elements, Compounds & Mixtures Day 3
Elements, Compounds & Mixtures Day 3Elements, Compounds & Mixtures Day 3
Elements, Compounds & Mixtures Day 3
 
Privatsparande
PrivatsparandePrivatsparande
Privatsparande
 
06 enterprise resource planning
06 enterprise resource planning06 enterprise resource planning
06 enterprise resource planning
 
Goede leiders zijn goede verhalenvertellers - Hans Donckers - Beanmachine
Goede leiders zijn goede verhalenvertellers - Hans Donckers - BeanmachineGoede leiders zijn goede verhalenvertellers - Hans Donckers - Beanmachine
Goede leiders zijn goede verhalenvertellers - Hans Donckers - Beanmachine
 
Options for filmingh
Options for filminghOptions for filmingh
Options for filmingh
 
Model answers
Model answers Model answers
Model answers
 
Multimedia01
Multimedia01Multimedia01
Multimedia01
 
Slide share test 110727
Slide share test 110727Slide share test 110727
Slide share test 110727
 
Infográfico Pessoal
Infográfico PessoalInfográfico Pessoal
Infográfico Pessoal
 
Notam Sul/Sudeste - 01-mai-16
Notam Sul/Sudeste - 01-mai-16Notam Sul/Sudeste - 01-mai-16
Notam Sul/Sudeste - 01-mai-16
 
My life
My lifeMy life
My life
 
Globo
GloboGlobo
Globo
 
Walking the talk - 3 insights from Behavior Design
Walking the talk - 3 insights from Behavior DesignWalking the talk - 3 insights from Behavior Design
Walking the talk - 3 insights from Behavior Design
 

Semelhante a Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de Linguagem C

Resumo Linguagem C
Resumo Linguagem CResumo Linguagem C
Resumo Linguagem C
Matheus Tiburtino Delazari
 
01-Paradigmas.pdf
01-Paradigmas.pdf01-Paradigmas.pdf
01-Paradigmas.pdf
AmlieOGalaxias
 
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de VariaveisAlgoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Rodrigo Kiyoshi Saito
 
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
 
Visualg
VisualgVisualg
Visualg
Pedro Silva
 
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
 
Unidade06
Unidade06Unidade06
Unidade06
Ialis Cavalcante
 
Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001
José Volmei Dal Prá Junior
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
Henry Raúl González Brito
 
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
JONATHANSILVADEOLIVE
 
Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+c
Thiago Freitas
 
Linguagem c-para-microcontroladores
Linguagem c-para-microcontroladoresLinguagem c-para-microcontroladores
Linguagem c-para-microcontroladores
34macchia34
 
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de AtribuiçãoParadigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Adriano Teixeira de Souza
 
Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2
Elvis Araújo
 
TDD na Prática
TDD na PráticaTDD na Prática
TDD na Prática
Rafael Fuchs, PMP, MBA
 
Test Strategies, Testes unitários, Testes de integração e DevOps
Test Strategies, Testes unitários, Testes de integração e DevOpsTest Strategies, Testes unitários, Testes de integração e DevOps
Test Strategies, Testes unitários, Testes de integração e DevOps
Rodolfo dos Santos Pinto
 
JS FUNDAMENTOS - AULA 01.pdf
JS FUNDAMENTOS - AULA 01.pdfJS FUNDAMENTOS - AULA 01.pdf
JS FUNDAMENTOS - AULA 01.pdf
AntonioSvio1
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
Camilo Ribeiro
 
Introdução ao C#
Introdução ao C#Introdução ao C#
Introdução ao C#
Alex Pinheiro Das Graças
 
Introdução à programação embarcada
Introdução à programação embarcadaIntrodução à programação embarcada
Introdução à programação embarcada
Rodrigo Almeida
 

Semelhante a Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de Linguagem C (20)

Resumo Linguagem C
Resumo Linguagem CResumo Linguagem C
Resumo Linguagem C
 
01-Paradigmas.pdf
01-Paradigmas.pdf01-Paradigmas.pdf
01-Paradigmas.pdf
 
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de VariaveisAlgoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
 
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
 
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
 
Unidade06
Unidade06Unidade06
Unidade06
 
Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
 
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
 
Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+c
 
Linguagem c-para-microcontroladores
Linguagem c-para-microcontroladoresLinguagem c-para-microcontroladores
Linguagem c-para-microcontroladores
 
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de AtribuiçãoParadigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
 
Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2
 
TDD na Prática
TDD na PráticaTDD na Prática
TDD na Prática
 
Test Strategies, Testes unitários, Testes de integração e DevOps
Test Strategies, Testes unitários, Testes de integração e DevOpsTest Strategies, Testes unitários, Testes de integração e DevOps
Test Strategies, Testes unitários, Testes de integração e DevOps
 
JS FUNDAMENTOS - AULA 01.pdf
JS FUNDAMENTOS - AULA 01.pdfJS FUNDAMENTOS - AULA 01.pdf
JS FUNDAMENTOS - AULA 01.pdf
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
Introdução ao C#
Introdução ao C#Introdução ao C#
Introdução ao C#
 
Introdução à programação embarcada
Introdução à programação embarcadaIntrodução à programação embarcada
Introdução à programação embarcada
 

Mais de Fabio Souza

RISC-V Design Challenge
RISC-V Design ChallengeRISC-V Design Challenge
RISC-V Design Challenge
Fabio Souza
 
Palestra Como o open hardware pode impactar na educação do nosso país
Palestra Como o open hardware pode impactar na educação do nosso paísPalestra Como o open hardware pode impactar na educação do nosso país
Palestra Como o open hardware pode impactar na educação do nosso país
Fabio Souza
 
Programe a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbedPrograme a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbed
Fabio Souza
 
Micropython - Python para microcontroladores
Micropython - Python para microcontroladoresMicropython - Python para microcontroladores
Micropython - Python para microcontroladores
Fabio Souza
 
Workshop - Cotrole sua casa remotamente através da Internet
Workshop - Cotrole sua casa remotamente através da InternetWorkshop - Cotrole sua casa remotamente através da Internet
Workshop - Cotrole sua casa remotamente através da Internet
Fabio Souza
 
Open Hardware - Projetos que estão mudando o mundo
Open Hardware - Projetos que estão mudando o mundoOpen Hardware - Projetos que estão mudando o mundo
Open Hardware - Projetos que estão mudando o mundo
Fabio Souza
 
Como publicar um projeto open hardware?
Como publicar um projeto  open hardware?Como publicar um projeto  open hardware?
Como publicar um projeto open hardware?
Fabio Souza
 
Como publicar um projeto open hardware?
Como publicar um projeto  open hardware?Como publicar um projeto  open hardware?
Como publicar um projeto open hardware?
Fabio Souza
 
Como o movimento maker e a internet das coisas estão revolucionando o mundo
Como o movimento maker e a internet das coisas estão revolucionando o mundoComo o movimento maker e a internet das coisas estão revolucionando o mundo
Como o movimento maker e a internet das coisas estão revolucionando o mundo
Fabio Souza
 
Montando sua própria placa arduino e compartilhando seus projetos de hardware
Montando sua própria placa arduino e compartilhando seus projetos de hardwareMontando sua própria placa arduino e compartilhando seus projetos de hardware
Montando sua própria placa arduino e compartilhando seus projetos de hardware
Fabio Souza
 
Monte sua franzininho, uma placa arduino compatível
 Monte sua franzininho, uma placa arduino compatível Monte sua franzininho, uma placa arduino compatível
Monte sua franzininho, uma placa arduino compatível
Fabio Souza
 
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareComo montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Fabio Souza
 
Workshop Microchip Curiosity Board
Workshop Microchip Curiosity BoardWorkshop Microchip Curiosity Board
Workshop Microchip Curiosity Board
Fabio Souza
 
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareComo montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Fabio Souza
 
Curso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXPCurso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXP
Fabio Souza
 
Curso mbed na KL25Z
Curso mbed na KL25ZCurso mbed na KL25Z
Curso mbed na KL25Z
Fabio Souza
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Motores
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - MotoresMicrocontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Motores
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Motores
Fabio Souza
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...
Fabio Souza
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...
Fabio Souza
 
Construindo sua placa baseada em Arduino
Construindo sua placa baseada em ArduinoConstruindo sua placa baseada em Arduino
Construindo sua placa baseada em Arduino
Fabio Souza
 

Mais de Fabio Souza (20)

RISC-V Design Challenge
RISC-V Design ChallengeRISC-V Design Challenge
RISC-V Design Challenge
 
Palestra Como o open hardware pode impactar na educação do nosso país
Palestra Como o open hardware pode impactar na educação do nosso paísPalestra Como o open hardware pode impactar na educação do nosso país
Palestra Como o open hardware pode impactar na educação do nosso país
 
Programe a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbedPrograme a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbed
 
Micropython - Python para microcontroladores
Micropython - Python para microcontroladoresMicropython - Python para microcontroladores
Micropython - Python para microcontroladores
 
Workshop - Cotrole sua casa remotamente através da Internet
Workshop - Cotrole sua casa remotamente através da InternetWorkshop - Cotrole sua casa remotamente através da Internet
Workshop - Cotrole sua casa remotamente através da Internet
 
Open Hardware - Projetos que estão mudando o mundo
Open Hardware - Projetos que estão mudando o mundoOpen Hardware - Projetos que estão mudando o mundo
Open Hardware - Projetos que estão mudando o mundo
 
Como publicar um projeto open hardware?
Como publicar um projeto  open hardware?Como publicar um projeto  open hardware?
Como publicar um projeto open hardware?
 
Como publicar um projeto open hardware?
Como publicar um projeto  open hardware?Como publicar um projeto  open hardware?
Como publicar um projeto open hardware?
 
Como o movimento maker e a internet das coisas estão revolucionando o mundo
Como o movimento maker e a internet das coisas estão revolucionando o mundoComo o movimento maker e a internet das coisas estão revolucionando o mundo
Como o movimento maker e a internet das coisas estão revolucionando o mundo
 
Montando sua própria placa arduino e compartilhando seus projetos de hardware
Montando sua própria placa arduino e compartilhando seus projetos de hardwareMontando sua própria placa arduino e compartilhando seus projetos de hardware
Montando sua própria placa arduino e compartilhando seus projetos de hardware
 
Monte sua franzininho, uma placa arduino compatível
 Monte sua franzininho, uma placa arduino compatível Monte sua franzininho, uma placa arduino compatível
Monte sua franzininho, uma placa arduino compatível
 
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareComo montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
 
Workshop Microchip Curiosity Board
Workshop Microchip Curiosity BoardWorkshop Microchip Curiosity Board
Workshop Microchip Curiosity Board
 
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareComo montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
 
Curso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXPCurso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXP
 
Curso mbed na KL25Z
Curso mbed na KL25ZCurso mbed na KL25Z
Curso mbed na KL25Z
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Motores
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - MotoresMicrocontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Motores
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Motores
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...
 
Construindo sua placa baseada em Arduino
Construindo sua placa baseada em ArduinoConstruindo sua placa baseada em Arduino
Construindo sua placa baseada em Arduino
 

Último

AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024
AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024
AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024
Consultoria Acadêmica
 
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL  INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL  INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...
Consultoria Acadêmica
 
Workshop Gerdau 2023 - Soluções em Aço - Resumo.pptx
Workshop Gerdau 2023 - Soluções em Aço - Resumo.pptxWorkshop Gerdau 2023 - Soluções em Aço - Resumo.pptx
Workshop Gerdau 2023 - Soluções em Aço - Resumo.pptx
marcosmpereira
 
Dimensionamento de eixo. estudo de caso.pdf
Dimensionamento de eixo. estudo de caso.pdfDimensionamento de eixo. estudo de caso.pdf
Dimensionamento de eixo. estudo de caso.pdf
RodrigoQuintilianode1
 
MAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptx
MAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptxMAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptx
MAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptx
Vilson Stollmeier
 
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...
Consultoria Acadêmica
 
AE03 - MATERIAIS DA CONSTRUÇÃO MECÂNICA UNICESUMAR 52/2024
AE03 - MATERIAIS DA CONSTRUÇÃO MECÂNICA UNICESUMAR 52/2024AE03 - MATERIAIS DA CONSTRUÇÃO MECÂNICA UNICESUMAR 52/2024
AE03 - MATERIAIS DA CONSTRUÇÃO MECÂNICA UNICESUMAR 52/2024
Consultoria Acadêmica
 
Introdução ao GNSS Sistema Global de Posicionamento
Introdução ao GNSS Sistema Global de PosicionamentoIntrodução ao GNSS Sistema Global de Posicionamento
Introdução ao GNSS Sistema Global de Posicionamento
GeraldoGouveia2
 

Último (8)

AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024
AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024
AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024
 
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL  INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL  INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...
 
Workshop Gerdau 2023 - Soluções em Aço - Resumo.pptx
Workshop Gerdau 2023 - Soluções em Aço - Resumo.pptxWorkshop Gerdau 2023 - Soluções em Aço - Resumo.pptx
Workshop Gerdau 2023 - Soluções em Aço - Resumo.pptx
 
Dimensionamento de eixo. estudo de caso.pdf
Dimensionamento de eixo. estudo de caso.pdfDimensionamento de eixo. estudo de caso.pdf
Dimensionamento de eixo. estudo de caso.pdf
 
MAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptx
MAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptxMAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptx
MAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptx
 
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...
 
AE03 - MATERIAIS DA CONSTRUÇÃO MECÂNICA UNICESUMAR 52/2024
AE03 - MATERIAIS DA CONSTRUÇÃO MECÂNICA UNICESUMAR 52/2024AE03 - MATERIAIS DA CONSTRUÇÃO MECÂNICA UNICESUMAR 52/2024
AE03 - MATERIAIS DA CONSTRUÇÃO MECÂNICA UNICESUMAR 52/2024
 
Introdução ao GNSS Sistema Global de Posicionamento
Introdução ao GNSS Sistema Global de PosicionamentoIntrodução ao GNSS Sistema Global de Posicionamento
Introdução ao GNSS Sistema Global de Posicionamento
 

Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de Linguagem C

  • 1. Fábio Souza 2015 Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados Resumo básico de Linguagem C
  • 2. 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;
  • 3. 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 durante o funcionamento */ } }
  • 4. 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 */
  • 5. Fábio Souza 2015 Representação numérica • Decimal: • valorDecimal = 125; • Binário: • PORTA=0b11010011; • Hexadecimal: • valor_hexa = 0xA4; • Caracter: • valorCarcter = ‘A’;
  • 6. Fábio Souza 2015 Tipos de Dados Tipos Inteiros - ANSI C (ISO 89)
  • 7. Fábio Souza 2015 Tipos de dados Tipos inteiros - ISO C99
  • 8. Fábio Souza 2015 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; char y;
  • 9. 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; }
  • 10. 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)/ }
  • 11. 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
  • 12. 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
  • 13. 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)
  • 14. 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
  • 15. 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
  • 16. 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();
  • 17. 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();
  • 18. 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; }
  • 19. 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; }
  • 20. Fábio Souza 2015 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
  • 21. 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; }
  • 22. Fábio Souza 2015 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);