AULA 7 - Microcontroladores - Técnico: mudanças entre as edições
imported>Fargoud |
imported>Fargoud |
||
| (3 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
| Linha 108: | Linha 108: | ||
vai imprimir, na tela de saída do console: | vai imprimir, na tela de saída do console: | ||
Hoje é dia da Canção da | |||
América? | |||
==== Strings==== | |||
Conjunto, série ou sequência de caracteres seguido do caractere ' \0 ' e delimitado por " ". | |||
Ex: | |||
char * texto= "ABC"; // ou char texto[4] ={ 'A' , 'B' , 'C' , '\0'}; | |||
-------- | |||
No Arduino existem algumas constantes previamente definidas e são consideradas palavras reservadas: | No Arduino existem algumas constantes previamente definidas e são consideradas palavras reservadas: | ||
* true – indica valor lógico verdadeiro | * true – indica valor lógico verdadeiro | ||
| Linha 119: | Linha 126: | ||
* INPUT – indica que uma porta será de entrada de dados. | * INPUT – indica que uma porta será de entrada de dados. | ||
* OUTPUT – indica que uma porta será de saída de dados. | * OUTPUT – indica que uma porta será de saída de dados. | ||
==Variáveis== | |||
Variáveis são lugares (posições) na memória principal que servem para armazenar dados. | |||
As variáveis são o aspecto fundamental de qualquer linguagem de computador. Uma variável em C é um espaço de memória reservado para armazenar um certo tipo de dado e tendo um nome para referenciar seu conteúdo. Ao contrário das constantes, uma variável tem seu valor mutável, daí o nome "variável". | |||
As variáveis são acessadas através de um identificador único. | |||
O conteúdo de uma variável pode variar ao longo do tempo durante a execução de um programa. | |||
Uma variável só pode armazenar um valor a cada instante. | |||
Um identificador para uma variável é formado por um ou mais caracteres, obedecendo a seguinte regra: o primeiro caractere deve, | |||
obrigatoriamente, ser uma letra. | |||
ATENÇÃO!!! | |||
Um identificador de uma variável ou constante não pode ser formado por caracteres especiais ou palavras reservadas da linguagem. | |||
===Declaração de uma variável:=== | |||
Ocorre quando a variável é "apresentada" ao compilador. O usuário declara que vai criar uma variável de um certo tipo para utilizá-la em seu programa. A sintaxe da declaração de uma variável é: | |||
tipo_var nome_var ; | |||
onde tipo_var é o tipo de variável criada e nome_var, o nome ou os nomes (separados por vírgulas) das próprias. | |||
Ex: | |||
int num ; | |||
e assim está declarada a variável "num" inteira. | |||
Ex2: | |||
float var1, var 2, var 3; | |||
declara as variáveis "var1" , "var2" e "var3", ao mesmo tempo, como sendo do tipo float. | |||
Edição atual tal como às 18h32min de 5 de outubro de 2016
Programação C para Arduino
Uma das linguagens mais utilizadas por técnicos e pesquisadores é a linguagem C. Isto ocorre principalmente pela versatilidade e pela complexidade da linguagem, que permitem a criação de programas muito sofisticados. Neste curso, vamos ver uma introdução à programação C, mais voltada para desenvolvimento de códigos para Arduino.
Histórico
A primeira versão da linguagem foi desenvolvida por dois pesquisadores da Bell Laboratories, Brian Kernighan e Dennis Ritchie.
A empresa necessitava de uma linguagem especificamente para escrever o sistema operacional UNIX, mas C revelou-se tão eficiente e "transportável" para outros sistemas operacionais, sistemas e hardwares que seu uso alastrou-se rapidamente.
Esta primeira versão, chamada "K&R" sofreu algumas modificações com o tempo, para adaptar-se a computadores com mais de 8 bits e assim nasceu a versão "ANSI C", considerada um padrão da linguagem.
Algum tempo depois, com a moda de programação orientada a objetos, nasceu a versão C++ que não mais segue a programação linear.
Várias empresas criaram seus próprios compiladores e IDEs C e assim apareceram o MS C (Microsoft), o Turbo C, Borland C, Dev, Code::Blocks, etc.
Características da Linguagem
“C é uma linguagem compilada, estruturada e de baixo nível.”
Linguagem compilada porque, após ser escrita num editor de textos qualquer (que siga o padrão ASCII), precisa ser decodificada, compilada (cada módulo separadamente) e linkada para obter-se um programa executável. Certos softwares como o Turbo C e o Borland C permitem que se edite, compile e linke os programas em C dentro de um mesmo ambiente (chamado de “IDE”, ou “Integrated Development Environment”), o que facilita muito a manipulação.
É uma linguagem estruturada porque segue o padrão de endentação, tal como em Pascal e Fortran por exemplo, com alinhamentos dos blocos lógicos cada vez mais à direita, quanto mais "interno" ao bloco for o comando, e com execução linear, sem utilização de goto's, break's, etc.
Existem duas formas de comentário de C:
- Comentários de linha: tudo que estiver, na mesma linha, após o "//" é completamente ignorado pelo compilador;
- Comentários multilinha: comentários que estão entre os símbolos "/*" e "*/", também são ignorados e não são compilados.
Finalmente é uma linguagem de baixo nível por permitir acesso às camadas lógicas mais baixas da máquina.
Isto é, por aproximar-se bastante da linguagem de máquina, Assembler, que apesar de bastante rudimentar tem a capacidade de acessar diretamente a memória, o hardware do computador, como registradores, portas, posições da RAM, etc.
Com isto, ganha-se muito em rapidez de execução e em poder para utilizar completamente os recursos do computador. É importante salientar que apesar de ser possível utilizar-se funções muito complexas de baixo nível em C, um programador não interessado nisto terá uma linguagem estruturada como qualquer outra de alto nível.
Outra característica importante é que C é uma linguagem de estilo livre, sem formatação rigorosa como Fortran e Basic. Em Basic, cada linha contém um comando e cada comando ocupa somente uma linha (às vezes, há até numeração das linhas). Em Fortran, os arquivos de saída contém espaços reservados para cada string, valor de caractere ou espaço em branco que deverá ser impresso. Nada disto ocorre em C. Desde que a sintaxe correta seja seguida, não há maiores restrições na linguagem. Ou melhor, quase não há.
O programador não pode esquecer que o compilador C diferencia caracteres minúsculos de maiúsculos. Por exemplo, as variáveis "numero" e "Numero" são consideradas diferentes uma da outra na linguagem C!!!!
Constantes
Um dado é constante quando não sofre nenhuma variação no decorrer do tempo. Do início ao fim do programa o valor permanece inalterado.
Em C, uma constante caractere é escrita entre aspas simples ( ' e ' ); uma cadeia de caracteres constante, é escrita entre aspas duplas ( " e " ); e constantes numéricas são descritas pelo seu valor numérico, propriamente dito.
A criação de constantes no Arduino pode ser feita de duas maneiras:
- Usando a palavra reservada const
- Usando a diretiva de pré-processador define
Exemplos:
- const int x = 100;
- const char caractconst ='c';
- #define NOME "meu primeiro programa "
- #define VALOR 8
- #define X 100
Tipos de Constantes:
O tipo da constante é definido pelo tipo de valor/dado que esta pode assumir. Constantes podem ser dos tipos:
Constantes numéricas:
Inteiros, octais, hexa, longas e ponto flutuante (reais).
Ex:
- 45E-8 (exponencial)
- 32 (inteiro)
- 034 (octal)
- 0xFE(hexa)
- 2e3 (exponencial)
- 32L (longa)
- 567893 (longa implícito)
- 2.3 (double)
Como podemos notar, constantes inteiras não possuem ponto decimal; constantes octais devem ser precedidas por um '0'; constantes hexa, por um '0x'; constantes longas devem ser seguidas por um 'L', mas quando se trata de um número muito grande o compilador já entende que é um inteiro longo; e constantes double ou float têm ponto decimal flutuante.
Constantes de Caractere:
Podem ser representadas por seu código ASCII, ou entre aspas, ' '. Ex:
' A ' = 65 (em ASCII)
Sequências de Escape
São códigos de tarefas a serem executadas na compilação, representados por caracteres que não podem ser impressos.
Sequência de escape Significado .
\a Caractere Bell (ANSI C)
\b Caractere de retrocesso (backspace)
\n Caractere de nova linha
\r Caractere de retorno de carro
\t Caractere de tabulação horizontal
\\ Caractere de contra-barra
\' Caractere de aspas simples
\" Caractere de aspas duplas
\? Caractere de ponto-de-interrogação
\### Código ASCII em octal de caractere
\x### Código ASCII em hexadecimal de caractere
\0 Caractere nulo
Ex: A instrução
printf(“\n\t\t Hoje \202 dia da Can\x87\xc60 da \nAm\x82rica\?”);
vai imprimir, na tela de saída do console:
Hoje é dia da Canção da América?
Strings
Conjunto, série ou sequência de caracteres seguido do caractere ' \0 ' e delimitado por " ".
Ex:
char * texto= "ABC"; // ou char texto[4] ={ 'A' , 'B' , 'C' , '\0'};
No Arduino existem algumas constantes previamente definidas e são consideradas palavras reservadas:
- true – indica valor lógico verdadeiro
- false – indica valor lógico falso
- HIGH – indica que uma porta está ativada, ou seja, está em 5V.
- LOW – indica que uma porta está desativada, ou seja,está em 0V.
- INPUT – indica que uma porta será de entrada de dados.
- OUTPUT – indica que uma porta será de saída de dados.
Variáveis
Variáveis são lugares (posições) na memória principal que servem para armazenar dados.
As variáveis são o aspecto fundamental de qualquer linguagem de computador. Uma variável em C é um espaço de memória reservado para armazenar um certo tipo de dado e tendo um nome para referenciar seu conteúdo. Ao contrário das constantes, uma variável tem seu valor mutável, daí o nome "variável".
As variáveis são acessadas através de um identificador único.
O conteúdo de uma variável pode variar ao longo do tempo durante a execução de um programa.
Uma variável só pode armazenar um valor a cada instante.
Um identificador para uma variável é formado por um ou mais caracteres, obedecendo a seguinte regra: o primeiro caractere deve, obrigatoriamente, ser uma letra.
ATENÇÃO!!!
Um identificador de uma variável ou constante não pode ser formado por caracteres especiais ou palavras reservadas da linguagem.
Declaração de uma variável:
Ocorre quando a variável é "apresentada" ao compilador. O usuário declara que vai criar uma variável de um certo tipo para utilizá-la em seu programa. A sintaxe da declaração de uma variável é:
tipo_var nome_var ;
onde tipo_var é o tipo de variável criada e nome_var, o nome ou os nomes (separados por vírgulas) das próprias.
Ex:
int num ;
e assim está declarada a variável "num" inteira.
Ex2:
float var1, var 2, var 3;
declara as variáveis "var1" , "var2" e "var3", ao mesmo tempo, como sendo do tipo float.