Tutorial 2 sobre como escrever uma função personalizada para placas Intel® Galileo
Até agora, temos escrito nosso código dentro das funções de configuração e loop. Isso está perfeitamente bem. Mas e se seu programa tivesse muita lógica complexa? Como você organizaria seu código?
Há uma arte para programar e ela começa com saber onde colocar seu código.
A codificação pode ficar complicada às vezes. Se você já leu algum código de código aberto, você pode encontrar algum código que:
- falta de comentários: incluindo comentários ajuda você e quem estiver lendo entender o que está acontecendo
- a lógica não está organizada: organizar seu código em blocos lógicos ajuda a depuração e manutenção de código
- nomes são enganoso: nomes de variáveis e funções devem descrever corretamente o que eles pretendem fazer
- inteligência sobre a clareza: o código deve ser facilmente lido; tente não ser enigmático no que você está tentando realizar
Programas em qualquer idioma podem ser escritos e organizados, no entanto, o programador vê adequado. Isso é bom se você for o único lendo seu código. No entanto, se você estiver trabalhando em uma equipe, é importante fornecer algumas diretrizes que todos seguem. Um dia, o código que você escreve precisará ser atualizado e lido por outras pessoas. Escrever um código organizado e praticar práticas comuns de codificação ajudará você e seu colega engenheiro a escrever um código bonito.
Para obter dicas sobre como melhorar seu estilo de codificação, confira o guia de estilo de codificação C++ do Google.
Há dois tipos de funções:
- Executa instruções e não retorna nenhum valor (tipo vazio)
- Executa instruções e devolve um valor (os tipos incluem int, float, duplo)
Consulte mais na seção Tipos de Dados na página de referência arduino.
Tipos de função
Type void:
void sayHello(){
Serial.println("Hello!");
}
Type integer:
int theAnswerToTheUltimateQuestionOfLifeTheUniverseAndEverything(){
return 42;
}
We can assign the value of functions that return something to variables:
int myAnswer = theAnswerToTheUltimateQuestionOfLifeTheUniverseAndEverything();
Digamos que queríamos tornar uma função um pouco mais útil. Podemos usar parâmetros de função para passar dados exclusivos que afetarão o resultado da função. Por exemplo:
int add(int x, int y){
return x + y;
}
Chamamos essa função, passando parâmetros personalizados assim:
int numbersAdded = add(2, 2); // The variable numbersAdded is equal to 4
Há uma variedade de maneiras que você pode escrever uma função. Tudo depende do que você quer que ele faça. Um bom lugar para começar a escrever uma função personalizada é definir a assinatura da função.
Assinatura da função
Antes de escrever o código de uma função, é melhor determinar o que você está tentando realizar.
- Ele devolverá um valor?
- Quantos parâmetros serão passados para ele (se houver)?
- Qual é o propósito da função?
Vamos fingir que você está escrevendo um programa que fornece uma mensagem personalizada para o monitor serial. Esta mensagem comentará sobre o tempo (que pode ser baseado em um sensor de temperatura, por exemplo).
Você ainda não sabe como é o código dentro da função, mas sabe o que quer que ele faça:
- Tome dois parâmetros personalizados para concatenar (ou juntar) juntos
- Pegue um número de tipo Duplo que se anexará à mensagem
- Não devolve um valor
- A saída do monitor serial imprimiria "Está 30 graus fora".
Nossa assinatura pode parecer algo assim:
void myMessage (String msg1, String msg2, double deg){}
Chamar a função seria algo como:
Os graus aqui seriam uma variável predefinida com base em uma leitura do sensor de temperatura.
myMessage("É", graus, "fora");
Desafio
Como você escreveria o código para concluir a tarefa desta função?
- Introdução
- Entrada avançada
- Modulação de largura de pulso (PWM)
- Escrevendo uma função personalizada
- Usando uma função personalizada
- Envolvê-lo