No i kurczę działa. A wcześniej się męczyłem i lipa. Dzięki wielkie za pomoc. Musiałem zmienić nieco docelowy soft. Zastosowałem Gosub Getdatetime Day_nr = Dayofweek() I mam teraz zarówno odczyt godzin, minut i dnia tygodnia. Super dzięki. Później przetestuję w gotowym urządzeniu, bo na biurku działa dobrze.
Witam wszystkich, mam pytanie dotyczące obsługi RTC w MCS Bascom 8051. Mianowicie jak z PCF8583 wyciągnąć dzień tygodnia i rok, jak obsługiwać format wyswietlania godziny (12/24 godzinny), słyszałem również, że układ sam moze rozpoznawać rok przestępny. Buduje właśnie układ z PCF8583, bez problemowo procesor odczytuje godziny, minuty i sekundy, oraz...
Witam wszystkich :) Napisałem program zegarka na PCF8583 ale chciał bym jeszcze odczytać sam dzień tygodnia (bez daty) w formacie: poniedziałek,wtorek,środa itd.Jakoś nie mogę sobie z tym poradzić...Pozdrawiam... $regfile = "m8def.DAT" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1...
Mając trochę wolnego czasu napisałem parę funkcji do obsługi układu PCF8583. Funkcja która ustawia godzinę i datę zapisuje też dane potrzebne do obliczenia pełnego roku, dzień tygodnia jest obliczany automatycznie na podstawie daty. Funkcje Pcf8583_write i Pcf8583_read można wykorzystać do zapisywania/odczytywania danych z wolnej pamięci ram. Dostępne...
Włączając maskowanie sprzętowe w pcf wyłączasz możliwość odczytu dnia tygodnia... Musisz to wyłączyć i ręcznie maskować za pomocą And i przy zapisie Or
:arrow: max_gg Starałem się koledze Lejk krok po kroku wyjaśnić metodę, a w poście wyżej prosił o łopatologiczny opis. 8) Jeżeli chodzi o maskowanie, to można też je zrealizować w układzie zegara PCF8583 podczas odczytu danych z rejestrów 05H i 06H poprzez ustawienie bitu 3 w rejestrze kontrolnym 00H. Wtedy odczytamy samą datę i numer miesiąca, natomiast...
Ja to robilem tak: Dim M As Byte Dim S As Byte Dim Ho As Byte Dim D As Byte Dim We As Byte Dim Mnt As Byte Dim Wm As Byte Dim Y As Byte Dim Yd As Byte Input "dzien" , D Input "dzin tygodnia" , We Input "miesiac " , Mnt Input "rok" , Y Input "godzina" , Ho Input "minuta" , M Input "sekunda"...
Wykorzystuje DS1307 i działa bez problemu.
Witam, Poszukuje implementacji w Bascom kalendarza z w/w układem. Jak odczytać i zapisać rok i dzień tygodnia. Pozdrawiam Jarek
Tu nie chodzi o nazewnictwo, tylko o wynik operacji. Najmłodszy bit jest gubiony, a nie wpisywany na najstarszą pozycję. Ale mniejsza z tym. Po maskowaniu będzie wszystko jedno. Natomiast mam pytanko - dlaczego pętla obejmuje te konwersję. Powinno być jakos tak [syntax=c] int licznik; for(licznik=0;licznik<5;licznik++) { buffer_t[licznik] = TWI_read(pcf8583,rtc_adres[licznik]);...
No to jak się zastanawiałeś nad tym, to powinieneś zaskoczyć o co chodzi... Po prostu należy najpierw wyłączyć maskowanie roku i dnia tygodnia (więc zamiast 8 do rejestru 0 wpisać wartość 0), potem odczytać cały bajt, zamaskować niepotrzebne bity w danym bajcie: najpierw rok i odczytać dzień miesiąca, potem zamaskować dzień miesiąca i odczytać rok -...
Witam, Nie twierdź, że czegoś nie ma w internecie skoro tego nie znalazłeś. Dam Ci podpowiedź jak to policzyć: - musisz wyznaczyć ile w każdym miesiącu jest dni (31, 28/29, 31, 30 itd.) - musisz znać dzień 1 stycznia (np. czwartek) i określić ilość dni od 1 stycznia do najbliższej niedzieli. Jeśli ilość dni jest mniejsza od 4 to ten tydzień zalicza...
Poczytaj note katalogową PCF8583, tam znajdziesz co się w rejestrach tego urządzonka kryje. A tam jest nie tylko dzień tygodnia, ale i miesiące i lata!
Witam. Mam pytanie dotyczące PCF8583. Chodzi mi o odczyt dnia, miesiąca, dnia tygodnia i roku. Wiem, że dzień i rok są pod adresem 5 a miesiąc i dzień tygodnia pod 6. Dostęp do nich ustawiamy bitem w rejestrze kontrolnym. A czy da się jednocześnie odczytywać wszystkie te cztery wartości? Próbowałem odczytywać rok i dzień tygodnia a później ustawiałem...
PCF8583 nie ma rejestru roku tak jak PCF8563. Co do dnia tygodnia - muszę poszukać w DS. EDIT: Dzień tygodnia musisz odczytać z rejestru miesiąca (06). Służą do tego bity 7..5 czyli: 1. odczytać rejestr 06 2. zamaskować wartość za pomocą AND &B11100000 3. przesunąć w prawo o 5 (Shift Rejestr_06 , Right, 5)
No tak dwa bity z lewej to rok dalsze 2 to 10 dni i ostatnie 4 to dzień zrobiłem taki program Zapisuje na starcie godzinę 23:59:58 i datę 31-12 dzień wpisuję tak &B00110001 , daję mi to 31 dzień miesiąca , kiedy przechodzi data na 1-01 to zmienną dnia wyświetla mi tak &B00000001 ale bity roku nie uległy zmianie. Jak do tego nie dojdę chyba zmienię...
W bajcie (6) gdzie zapamiętywany i liczony jest dzień, trzy najstarsze bity określają dzień tygodnia, więc żeby została informacja tylko o dniu , wczesniej należy zamaskować lub wyciąć te trzy najstarsze bity.
dlaczego powinny???? dzien = PCF8583 >> 5; //to powinny być bity 8,7,6 będą bity tylko że nie 8,7,6 a 7,6,5 - czyli właśnie dzień (nr dnia) tygodnia w czym problem? Poza tym pisałem że nie trzeba nawet nic maskować bo podczas przesuniecia w prawo o 5 pozostałe wsunięte bity będą miały zawsze wartość 0
http://obrazki.elektroda.pl/8074733100_1... Witam, Ostatnio wpadła mi w ręce karta VGA sterowana poprzez złącze szeregowe SPI. A a ponieważ w domu poniewiera się kilka starych monitorów VGA to postanowiłem zbudować zegar wyświetlający czas i datę na monitorze VGA (bez udziału PC) Takiego zegarka na elektrodzie chyba jeszcze nie było....
Projekt fajny, choć ubolewam, że napisany w Bascom a nie w C. Ja też ubolewam nad tym bo C w porównaniu do Bascoma jest o wiele szybszy i ma ponadto inne zalety. Bascom jest intuicyjny od niego zaczynałem zabawę z mikrokontrolerami. Teraz uczę się programować w C. Czy wyznaczanie dnia tygodnia opiera się o algorytm wiecznego kalendarza Zellera czy...
Rok jest przestępny, gdy jego numer dzieli sie przez 4, ale nie dzieli się przez 100, bądz też gdy dzieli się przez 400. To nam załatwia sprawę roku przestępnego, proponuję stosować algorytm tylko do pierwszego przecinka, reszta do wykorzystania w roku 2100. A teraz jak to zastosować w pcf-ie. Do tych dwóch bitów na rok ustawiać zero jeśli rok przestępny,...
Wprawdzie z Twojej wypowiedzi wynika, że nie zmienia się tylko dzień tygodnia, ale być może nie zwróciłeś uwagi czy następuje zmiana roku. Jeśli rok także się nie zmienia, to najprawdopodobniej winny jest tutaj ustawiony bit maski odzczytu rejestrów miesiąca i daty (bit 3 rejestru control/status PCF8583). pozdrawiam jj
Witam. Mam takie pytania. 1. Czy maskowanie bitów roku i dnia tygodnia odbywa się tylko przy zapisie danych do RTC, a przy odczycie jest to gotowa juz zmienna do konwersji na wartość zrozumiałą do wyświetlenia Dnia i Miesiąca..?. Czyli czy dobrze rozumiem, że jak zamaskuję rok przy zapisie to nie odczytam już roku.? 2. Ustawianie maskowania odbywa się...
Zamieniłem, czas leci, dzień się zmienia, ale nie liczy tych kilku bitów które odpowiadają za numer dnia tygodnia, na czym akurat BARDZO mi zależy. Skąd w ogóle bierze się to 163, 160 , bo nie mogę załapać... edit: a może w bajcie kontrolnym, pod 00, trzeba bit 3 ustawić na 1 i wówczas odczytywać niemaskowane wartości ? Taka inicjalizacja ?
Menu dobrze jest zrobić przy użyciu Case . czyli jednym z przycisków wchodzi się do podprogramu Menu i tam przez Case wybiera się parametr, który chcemy zmienić. I odwołanie do programów. Coś w tym stylu - piszę z pamięci, więc mogę coś przekręcić: Do Debounce 0 , Menu, Sub Loop End Sub menu: Do Case 0 Case 1 Locate 1,1 Lcd "Ustaw minuty"...
Jest bit odpowiedzialny za maskowanie odczytu dni tygodnia, ale moja część programu realizująca odczyt danych z RTC jest poprawna, bo przy pierwszym odczycie jest zawsze "poniedziałek", ale jak ustawie sobie np. godzinę 23:59 to po minucie będzie już nastepny dzień tygodnia i tak też się dzieje bo wyświetla mi się ładnie "wtorek". A co do fragmentu...
1. czy da sie wylaczyc sygnal 1 Hz na wyjsciu INT układu (żeby nie wywoływał przerwania co sekunde tylko wtedy kiedy nastąpi alarm ?) 2. jaką wartość powinienem wysłać do procka, żeby ustawił odpowiednio rok i dzień miesiąca, w moim rozumieniu jest tak: -chcę ustawić rok 02 i dzień miesiąca 25: -rok jest w zmiennej year a dzień miesiąca w zmiennej day:...
Witam ponownie! Tak na pierwszy rzut oka widać kilka błędów, ale nie mam już dziś siły się rozpisywać... ;) Dam Ci za to coś takiego: I jeszcze to: Pliki zawierają opis PCF-a po polsku. Poszukaj też na forum - na temat tego scalaka było tu już bardzo dużo. DS1307 jest prostszy w obsłudze od PCF8583 (co nie znaczy, że ten drugi jest trudny :) ) i ma...
http://obrazki.elektroda.pl/5599753300_1... Witam wszystkich. Właśnie ukończyłem wykonywać swój zegarek i chciałem go zaprezentować. To pierwszy projekt jaki umieszczam na forum więc proszę o wyrozumiałość. Sercem urządzenia jest mikroprocesor atmega32 taktowana kwarcem 11,059200 MHz. Czas odczytywany jest z układu Pcf8583 i aktualizowany...
Nie da się na to patrzeć :D BASCOM ma wbudowana zoptymalizowaną biblioteke do takich rzeczy. Trzeba jednak wskazac że używamy zegarka zewnętrznego. Stworzone zostana zmienne _sec,_min,_hour,_day,_month itd... Idąc dalej jak tylko powiesz mu wyswietl numer dnia to sam bedzie wiedział że jest Piątek :D Jest do tego Funkcja Dayofweek() Trzeba tylko połaczyc...
Zbudowałem sobie zegarek z tiny26 + pcf8583 + wyświetlacz nokia3310. Trochę mało pamięci na znaki i kod programu ale w wersji minimalnej działa poprawnie. Dla ciekawostki dodam, że wyświetlacz działa przy zasilaniu 5V i jeszcze się nie uszkodził (mimo zaleceń na 3.3V). Niestety jak na zegarek naręczny byłby drogi w eksploatacji. Pożera mi 1 baterię...
Ok spróbuje.Co nieco zmodyfikowałem ale utknąłem na porównaniu czasu.... część programu; [syntax=csharp][/syntax][/syntax]//=====... //ODCZYT ZEGARA CZASU RZECZYWISTEGO RTC //======================================... int a,tr; for(a=0;a<5;a++) { read_pcf[a] = TWI_read(pcf8583,rtc_adres[a]);...
Dzień tygodnia bez problemu, nawet informacje, czy czas jest letni, czy zimowy. Jeśli na początku na początku podpiąłeś $lib "dcf77.lbx" to zostały zdefiniowane zmienne to w Sectic daje [syntax=basic4gl] Sectic: Strtime = Time$ ' z ciagu czas Bsec = Time(strtime) ' oblicz sekundy Strdate = Date$ ' z ciagu data Bday = Date(strdate) ' oblicz numer dnia...
Napisałem program w którym jednej z funkcji nie potrafię zdefiniować a dotyczy porównania czasu odczytanego z pamięci z czasem zegara systemowego. Są cztery kanały realizujące funkcje załącz/ wyłącz z uwzględnieniem dni tygodnia tzn; od poniedziałku do piątku [10 nastaw czasu] i sobota-niedziela [cztery] nastaw czasu co łącznie daje 14 wartości czasu]....
Witam Niestety to nic nie daje. Jak na razie mam trzy sposoby odczytu rejestrów w PCF8563: Dodano po 1 Problem rozwiązałem - maskowanie było w złym miejscu Powinno być: [syntax=basic4gl] I2cstart I2cwbyte 162 I2cwbyte &H02 I2cstart I2cwbyte 163 I2crbyte Sekundy_bcd , Ack 'Odczytuje sekundy I2crbyte Minuty_bcd , Ack 'Odczytuje minuty I2crbyte Godziny_bcd...
Witam. Znalazłem ten kod na elektrodzie i zmodyfikowałem go trochę do własnych potrzeb. Zegarek mierzy poprawnie czas z PCF 8583, ale jest problem z odczytem daty tj dzień, miesiąc, rok, dzień tygodnia. Nie wiem jak prawidłowo ustawić bity w programie. Drugą sprawą jest sposób nastawiania zegarka, otóż chciałbym w przyszłości dopisać program do budzika,...
Mam problem. Buduję układ którego jedną z funkcji będzie zegarek. Nie chcę stosować układu PCF8583 gdyż jest zbyt drogi i posiada dużo nieużytecznych dla mnie rzeczy. Przeglądałem poprzednie topici o tym jednak nie znalazłem wystarczającej odpowiedzi.... Mikrokontroler jaki będę stosował to Atmega32, jednak chwilowo w celu testów program robię na Atmega8....
Po podpięciu PCF mogę ustawiać / pobierać czas, niestety nie jest on w inny sposób zmieniany przez ten układ. w skrócie : PFC nie odmierza czasu. Kwarc 32k, kondensator 33piko. Zegar podłączony na płytce stykowej tak jak na schemacie, tylko pod ATmege8. Kod : w mainie w nieskonczonej petli jest pobierany czas i wrzucany na wyswietlacz. rtc.h [syntax=c]...
Witam. Gdzieś w tym kodzie popełniłem błąd ale pomimo kilkukrotnego sprawdzenia nadal nie potrafię odkryć czy błędnie zapisuje dane czy błędnie je odczytuje...może ktoś mógłby wskazać "usterkę" w tym programie.? [syntax=c] //======================================... int main() { DDRB=0x01; //podświetlenie LCD (reszta...
Witam. Od kilku lat w ogrodzie posiadam system nawadniania (wynurzalnych zraszaczy). Jest to bardzo wygodny sposób podlewania roślin z, którego jak do tej pory jestem bardzo zadowolony, jednak do pełni szczęścia brakuje mi zautomatyzowania całego procesu. Do tej pory polegało to na ręcznym otwieraniu i zamykaniu każdej z 5 sekcji osobno ( podyktowane...
Albo jestem za stary albo za bardzo zmęczony...jak komuś się chce pokombinować to wklejam trochę kodu..może z tego chaosu zrobi jakieś logiczne MENU LCD.. // koniec pomiarów odczytu daty monitorowania napięć i innych procedur -:) unsigned char kanal=10; for(kanal=10; kanal<18; kanal++) { switch(kanal) { case 10://czasu...
http://obrazki.elektroda.net/67_12744374... Witam! Chciałbym dziś pokazać urządzenie, które powoli i z bólami tworzyłem ostatnimi czasy. Inspiracją do ruszenia z pracami były zbliżające się urodziny narzeczonej, której chciałem podarować coś nietypowego, a jednocześnie praktycznego. A że nie może być chyba nic bardziej praktycznego i przydatnego...
http://obrazki.elektroda.net/33_12394828... Witam, Chciałbym przedstawić szanownym koleżankom i kolegom, kolejny mój wytwór z serii fantazji n/t zegarków. To już kolejna wersja i jeszcze bardziej netypowa. Niestety jeszcze pracuję nad ukończeniem programistycznym wszystkich funkcji, tzn pozostało mi jeszcze sprzężenie zegarka z kompem - ale...
PCF8583 ma własne zasilanie [akumulatorek] do podtrzymania pamięci , błędny odczyt następuje po zmianie wartości dni np; 19-07-2011 na 20-27-2011 .. 20-47-2011 . Co jest powodem nie wiem choć przeczytałem polskiego datasheta PCF-a. Przepisałem program ale z porównywaniem czasu to jest masakra i do tego jak na złość nie działa , czy można to zrobić prościej...
Witam, czy może ktoś zerknąć na ten kod. Dlaczego nie da się odczytać dnia tygodnia. (odczytuje miesiac, shift o 5 w prawo, zmieniam na dec, wyswietlam na LCD, przed zapisem zmieniam na bcd, przesuwam dzien w lewo o 5). Zapewne dla niektórych będzide to oczywiste, dlatego licze na waszą pomoc :) program odczytuje i zapisuje date, godzine itp. wm-miesiac,...
dzień tygodnia arduino zegar dzień tygodnia bascom dzień tygodnia
cyfra moduł ogniwo słoneczne ładowanie akumulatora szlifierka kątowa kondensator schemat
Instrukcja obsługi zmywarki Siemens SD6P1S Brak napięcia w kostce oświetlenia Barton Firefox