tag:blogger.com,1999:blog-5513833072608837410.post6771867945243591044..comments2023-03-25T09:59:27.972-04:00Comments on Fabiano Arndt: Arduino - Data e horaFabiano Arndthttp://www.blogger.com/profile/15268923442674744187noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-5513833072608837410.post-68519261732475067682018-06-05T16:33:20.221-04:002018-06-05T16:33:20.221-04:00#define LEAP_YEAR(_year) ((_year%4)==0)
//variav...#define LEAP_YEAR(_year) ((_year%4)==0)<br /><br /><br />//variaveis globais<br />static uint8_t ULTIMODIADOSMES[] = {31, 28, 31, 30 , 31, 30, 31, 31, 30, 31, 30, 31};<br />uint8_t SEGUNDO ; //0..63<br />uint8_t MINUTO ; //0..63<br />uint8_t HORA ; //0..31<br />uint8_t DIADASEMANA ; //0..7<br />uint8_t DATA ; //0..31<br />uint8_t MES ; //0..15<br />uint16_t ANO ; //0..2047<br /><br />//variaveis globais<br /><br />int UNIXT_TO_DATE(uint64_t EPOCH)<br />{<br /> uint8_t MONTH, MONTHLENGTH;<br /> uint32_t DAYS, YEAR;<br /> SEGUNDO = 0;<br /> MINUTO = 0;<br /> HORA = 0;<br /> DIADASEMANA = 0;<br /> DATA = 0;<br /> MES = 0;<br /> ANO = 0;<br /> YEAR = 70;<br /> DAYS = 0;<br /> <br /> SEGUNDO = EPOCH % 60;<br /> EPOCH /= 60; // now it is minutes<br /> MINUTO = EPOCH % 60;<br /> EPOCH /= 60; // now it is hours<br /> HORA = EPOCH % 24;<br /> EPOCH /= 24; // now it is days<br /> DIADASEMANA = ((EPOCH + 4) % 7)+1;<br /> <br /> while((uint32_t)(DAYS += (LEAP_YEAR(YEAR) ? 366 : 365)) <= EPOCH) <br /> {<br /> YEAR++;<br /> } // ** Acredito que o erro esteja ness laço, mas nao consigo ver *<br /> <br /> ANO = YEAR; // is returned as years from 1900<br /> DAYS -= LEAP_YEAR(YEAR) ? 366 : 365;<br /> EPOCH -= DAYS; // now it is days in this year, starting at 0<br /> for (MONTH=0; MONTH < 12; MONTH++)<br /> {<br /> MONTHLENGTH = ( (MONTH == 1) && LEAP_YEAR(YEAR) ) ? 29 : ULTIMODIADOSMES[MES]; // month==1 -> february<br /> if (EPOCH >= MONTHLENGTH)<br /> {<br /> EPOCH -= MONTHLENGTH;<br /> }<br /> else<br /> {<br /> break;<br /> }<br /> }<br /> MES = MONTH + 1; // jan is month 0<br /> DATA = EPOCH + 1; // day of month<br /> //ANO += 1900;<br /> <br />}<br />Anonymoushttps://www.blogger.com/profile/03784000563101929155noreply@blogger.comtag:blogger.com,1999:blog-5513833072608837410.post-89606319240704944982018-06-05T16:31:40.417-04:002018-06-05T16:31:40.417-04:00Este comentário foi removido pelo autor.Anonymoushttps://www.blogger.com/profile/03784000563101929155noreply@blogger.comtag:blogger.com,1999:blog-5513833072608837410.post-62619988660739751352017-01-25T23:32:56.357-03:002017-01-25T23:32:56.357-03:00Desde já quero parabenizar pelos vídeos que são mu...Desde já quero parabenizar pelos vídeos que são muito interessantes.<br /><br />Fique com DEUS.Anonymoushttps://www.blogger.com/profile/14079233121866456929noreply@blogger.comtag:blogger.com,1999:blog-5513833072608837410.post-83849683611190908432017-01-25T23:31:48.834-03:002017-01-25T23:31:48.834-03:00Boa noite, Fabiano. Tudo bem?
Meu nome é Bruno Jo...Boa noite, Fabiano. Tudo bem?<br /><br />Meu nome é Bruno Jordão e gostaria, se for possível, que você me ajudasse. <br /><br />Estou desenvolvendo um projeto de um relógio com arduino para minha tese de mestrado, mas tenho que trocar a base de tempo do cristal de 16MHz por uma base de 10MHz de um relógio atômico. Como faço para mudar o FUSE do arduino e programar com essa nova base de tempo?Anonymoushttps://www.blogger.com/profile/14079233121866456929noreply@blogger.com