Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Biblioteca de Termistores #37

Open
4 of 7 tasks
leocelente opened this issue Feb 1, 2022 · 0 comments
Open
4 of 7 tasks

Biblioteca de Termistores #37

leocelente opened this issue Feb 1, 2022 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@leocelente
Copy link
Member

leocelente commented Feb 1, 2022

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
@leocelente leocelente added the enhancement New feature or request label Feb 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants