Esta é uma descrição do código e da forma como este está organizado.
O código não vai ser colocado aqui, pois acredito que uma boa descrição das várias etapas é mais importante, além do mais pode ser feito em várias linguagens com MCU diferentes, etc...
- Iniciar o sistema (configurações de clock, ADC, etc.);
- Iniciar a biblioteca da EEPROM (deste caso 24AA128);
- Fazer ciclo 'for' para que o 25 primeiros endereços sejam colocados a zeros. Como já tinha dito, é aqui que vai ser guardado o valor do último ciclo com valor de temperatura válido;
- Fazer um ciclo 'while' que incorpora: incremento de endereço, leitura do sensor, verificação se é temperatura negativa ou positiva, escrever na memória pela ordem descrita no post anterior, guardar o número de ciclos feito até ao momento, etc;
- O ciclo 'while' em cima será interrompido quando houver algo disponível na porta serial. Neste caso, quando for enviado o comando '123' ele sairá do ciclo;
- Após sair do ciclo, é perguntado se se pretende 'descarregar os dados?'. A resposta deverá ser 'SIM', caso contrário a pergunta é feita novamente;
- Depois de confirmar é feita a soma dos valores guardados nos primeiros 25 endereços, para saber qual o número de ciclos de leitura (ou ciclos de escrita que foram feitos);
- Sabendo o número de ciclos, entra-se num ciclo 'while' que vai buscar dados à memória, obter a temperatura (ver post anterior) e envia-la via serial. Quando o número de ciclos de leitura, for igual ao número limite de ciclos de escrita, o 'while' termina;
- Por último fica-se a aguardar um reset ao circuito;
Esta é a ordem de eventos no código de teste. Deste até ao código final várias coisas terão de ser aperfeiçoadas.
Falta ligar um cristal de 32KHz, configurar interrupções de forma a que cada leitura de temperatura seja feita de 15 em 15min, iniciar com um 'pulsador', etc.
A imagem seguinte ilustra uma pequena demonstração do código teste num simulador.
Clicar na imagem para ver maior |
0 Responses so far.
Enviar um comentário