AULA 7 - Microcontroladores - Técnico
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 e Variáveis
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
Exemplo:
const int x = 100;
- Usando a palavra reservada define
Exemplo:
#define X 100
Exemplos:
- 10
- "Bata antes de entrar!"
- -0,58
- const char caractconst ='c';
- #define NOME "meu primeiro programa "
- #define VALOR 8