witam kolegów i kolezanki
mam pytanie kwestii programistycznej. mianowicie jak zrobić kalendarz w bascomie? chodzi mi o wyświetlanie przy zegarze daty w formacie DD-MM-YY (albo YYYY)? od razu mówię że bez użycia dayoftheyear i tak dalej bo chodzi o attiny2313...
jak zrobić datę w bascomie?
-
keruseykaryu
za prosto... styczeń ma 31 dni a luty 28. chodzi mi o to czy są jakieś "bascomowe myki" czy robić to na if`ach i liczyć 4 lata ale to też nie zda egzaminu... chodzi mi o jakiś algorytm na wieczny kalendarz albo stuletni bo są implementacje np w C czy w Pascalu. ale jak to zrobić w bascomie? tutaj mam coś takiego:
[ Dodano: 2010-04-06, 14:20 ]
może inaczej... czy taki tiny2313 poradzi sobie z obliczeniem takiego bądź co bądź skomplikowanego równania? bo modulo liczy i inne funkcje arytmetyczne też. może inny procek?
[ Dodano: 2010-04-06, 14:25 ]
no poza tym jeszcze jakoś bym chciał to wyświetlić w takim formacie DD.MM.YYYY
jak to wcisnąć w bascoma? albo w asm...dzień tygodnia = ([23m/9] + d + 4 + y + [z/4] - [z/100] + [z/400] - 2 (if m >= 3) ) mod 7
gdzie
[ ] oznacza dzielenie bez reszty z zaokrągleniem w dół
mod - funkcja modulo
m - numer miesiąca (od stycznia = 1 do grudnia = 12)
d - numer dnia miesiąca
z = y - 1 jeśli m < 3,
z = y w pozostałych przypadkach
[ Dodano: 2010-04-06, 14:20 ]
może inaczej... czy taki tiny2313 poradzi sobie z obliczeniem takiego bądź co bądź skomplikowanego równania? bo modulo liczy i inne funkcje arytmetyczne też. może inny procek?
[ Dodano: 2010-04-06, 14:25 ]
no poza tym jeszcze jakoś bym chciał to wyświetlić w takim formacie DD.MM.YYYY
Bascom może nie chcieć przetrawić tak skomplikowanego równania, ale po rozbiciu bo na kilka prostszych powinno działać bez problemu.
Procesor może mieć problemy z dużymi liczbami.
Do dzielenia są trzy polecenia. Pierwsze dzieli jak kalkulator, ze znakami po przecinku. Drugie daje liczbę, a trzecie resztę jak przy dzieleniu z resztą.
Jeśli ma tu być wyświetlone na LCD, to bez problemu możesz kolejno wysłać do niego zmienne. Pamiętaj, że jeśli liczba jest mniejsza od 10, to przed nią należy wysłać jeszcze zero lub pusty znak.
Jeśli data ma być w formacie DD.MM.RRRR to po co liczyć dzień tygodnia.
Procesor może mieć problemy z dużymi liczbami.
Do dzielenia są trzy polecenia. Pierwsze dzieli jak kalkulator, ze znakami po przecinku. Drugie daje liczbę, a trzecie resztę jak przy dzieleniu z resztą.
Jeśli ma tu być wyświetlone na LCD, to bez problemu możesz kolejno wysłać do niego zmienne. Pamiętaj, że jeśli liczba jest mniejsza od 10, to przed nią należy wysłać jeszcze zero lub pusty znak.
Jeśli data ma być w formacie DD.MM.RRRR to po co liczyć dzień tygodnia.
no właśnie gdyby miał być LCD to bez problemu jest program w C więc bym się nie bawił. ale ja chce to wysłać na VFD 7-segmentowy i nie znalazłem nic ciekawego. chyba będę się zarzynał na if`ach od np 01.01.1990 albo 2k... zobaczę ile będzie żarło pamięci ewentualnie przy zaniku napięcia wrzucę datę do eeproma albo zasosuje jakiegoś rtc... słyszałem też że całe to "dayoftheyear" w bascomie przy mega8 jest strasznie pamięciożerne... to prawda?
przetrawi, ale...pod jednym warunkiemhaterkmp pisze:może inaczej... czy taki tiny2313 poradzi sobie z obliczeniem takiego bądź co bądź skomplikowanego równania? bo modulo liczy i inne funkcje arytmetyczne też. może inny procek?
wszystkie operacje musisz zrobić odpowiednio w matematycznej kolejności ale w oddzielnych linijkach. w całości nie policzy za Boga. próbowałem juz podobnie skomplikowanych wzorów matematycznych. wszystko trzeba liczyć oddzielnie żeby miec kolejno wyniki.
o kolejności oczywiście pamiętam ale w sumie myślę co faktycznie mi to da że będę wiedział jaki jest dzień tygodnia... chyba będę ciął if`y od 2000 roku a przetępny rok będzie liczony po prostu kolejną zmienną...
a taki pcf8563 czy jakiś inny potrafi mi dać datę w BCD czyli jakoś można by to wykorzystać... zamiast wywalać zmienne w kodzie dwójkowym z tabeli to mogę dawać przecież BCD na wyświetlacz... trza pokombinować
a taki pcf8563 czy jakiś inny potrafi mi dać datę w BCD czyli jakoś można by to wykorzystać... zamiast wywalać zmienne w kodzie dwójkowym z tabeli to mogę dawać przecież BCD na wyświetlacz... trza pokombinować