Manual
do
Maker
.
com
No post anterior sobre MSP432 você viu uma introdução à board e o quão interessante pode ser utilizar esse hardware, principalmente pelo fato de ter uma interface parecida com a do Arduino para facilitar a vida dos hobistas que já se divertem com essa plataforma. Claro, há uma diferença monstruosa entre as duas, principalmente porque a MSP432 é uma ARM, tem 4 timers de 16 bits, 2 timers de 32 bits, DSP, RTC e mais um monte de diversão que pode ser vista no post citado acima.
Nesse post vou mostrar como configurar o RTC dessa board utilizando uma biblioteca disponibilizada nesse link. Assista previamente o vídeo porque há detalhes importantíssimos a considerar. Também, o vídeo é uma forma de mostrar a qualidade de informação que disponibilizo no meu canal do YouTube. Aprecie-o e inscreva-se se gostar do vídeo.
https://www.youtube.com/watch?feature=player\_detailpage&v=7q8Ae5iUXDw
O tempo é medido em Unix Time (ou epoch time, ou timestamp), que é um inteiro não assinalado e 32 bits em segundos, desde 1970. Se você assistiu o vídeo, já não tem mais surpresa em relação ao método de coletar essa informação e, sério, não sei como você pode fazê-lo no WIndows, mas também não tenho o menor interesse nisso. No Linux, simplesmente abra um terminal e digite:
date +%s
Isso lhe retornará o tempo em segundos, como necessário. De qualquer modo, tudo se encontra online. nesse link você poderá fazer a conversão sem problemas, caso use Windows.
Mãzzzz, você não precisa mexer nisso no final das contas, a não ser haja algum problema ou você pretenda reduzir o código. Problemas é comigo mesmo e acabei tendo que implementar uma gambiarra 'em tempo de gravação'. Não é ideal essa prática, mas quebra o galho, depois o negócio é atualizar via serial, pegando o tempo um pouco mais preciso do notebook/PC. A parte do código que mexi foi essa abaixo (apenas para você se situar, caso deseje implementar a mesma gambiarra):
String stampDateTime = String(__DATE__ " " __TIME__);
E outra assim:
if (convertString2DateTime(stampDateTime, "%b %d %Y %H:%M:%S", myEpochRTC)){
myRTC.setLocalTime(myEpochRTC);
}
else...
__DATE__ e __TIME__ são populados em tempo de compilação, portanto você não precisa ter nenhum trabalho extra. Já na linha que se refere à conversão de string para timestamp, essa predefinição é utilizada e em caso de erro tem um tratamento em 'else' que você pode querer modificar, mas a principio você não precisa tocar no código.
Siga-nos no Manual do Maker no Facebook.
Prefere twitter? @DobitAoByte.
Inscreva-se no nosso canal Manual do Maker Brasil no YouTube.
Próximo post a caminho!
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.