zenitheesc/Drivers

Biblioteca de Termistores

Opened this issue · 0 comments

Biblioteca de Termistores

Criar uma biblioteca genérica de termistores para que outros drivers possam utilizar. A biblioteca não deve depender da forma que as medidas foram adquiridas, seja diretamente via ADC, ou um amplificador/conversor externo. Também não deve depender da plataforma.

Construção de Bibliotecas

Primeiro deve ser determinado o estado da biblioteca, ou seja, qual informação é de escopo global, versus local de uma função. Caso haja um estado global, não é recomendado utilizar variáveis globais. É melhor criar uma struct com esse estado e ela pode ser passada em cada chamada de função. Isso evita problemas caso tenhamos mais de um termistor de tipo diferente.

Uma vez sabendo qual informação pertence a qual escopo, já dá pra identificar as funções, geralmente acaba sendo:

  • init
  • measure
  • funções auxiliares

Lembrando que toda função da biblioteca deve começar com o nome dela, sugestão: thermistor_*.
Como estamos lidando com medidas físicas, é importante deixar explicito as unidades.
Idealmente, toda constante não óbvia deve ter um nome com um #define no .h da biblioteca.
Como estamos programando para um microcontrolador, o tamanho em memória das variáveis deve ser ponderado.
É recomendado declarar variáveis no momento que são necessárias, não no inicio da função.

  • Definir interface comum; sugestão: a resistência medida
  • Definir a struct de estado global, caso haja
  • Definir as funções de interface
  • Construir a implementação
  • Documentação
  • Revisão
  • Teste