Manual

do

Maker

.

com

MSP432 e seu RTC nativo

MSP432 e seu RTC nativo

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!

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.