Po mojemu to mogło by być tak. '*********************** Podprogram ustawiania godzin ,minut, dni i miesięcy Sub Menu: Start_menu = 0 Do If Menu_ustaw = 0 Then Waitms 25 If Menu_ustaw = 0 Then Incr Start_menu If Start_menu >= 6 Then Start_menu = 0 End If End If End If Select Case Start_menu Case 0 : Case 1 : Locate 1 , 1 Lcd "Ustaw...
Dzieki Panowie za podpowiedzi ,mam problem z ustawieniem konkretnej godziny bo do pcfka musi byc godzina zapisana w formacie BCD,i jak zastosuje cos takiego Zwiększaj/zmniejszaj binarną , a dopiero po tym rób z tego BCD. H = 21 'dwudziesta pierwsza if pinc.2=0 then incr h end if H=Makebcd(h) 'w H znajdzie sie wartość &H22(binarnie 34)...
W załączeniu pdf z opisem pcf-a po polsku. Masz tam opisane jakie rejestry należy ustawiać.
Przy robieniu schematu podpowiadali mi forumowicze, i mówili, że kondensatora i rezystora nie potrzeba. Czyli mam dodać pcf8583 + kwarc zegarkowy? Może i nie trzeba, ale są zalecane do tłumienia zakłoceń na zasilaniu. Biorąc pod uwagę koszt kondensatora i rezystora to żadna oszczędność w konfrontacji ze świętym spokojem. Generalnie zwiększą one odporność...
Przecież wystarczy zajrzeć do dokumentacji obu układów..... PCF8583: adres I2C ustawiany jako 0xA0/0xA2 (pinem zewnętrznym) 24C04: adres I2C ustawiony "na sztywno" jako 0xA0 dla pierwszych 256 bajtów i 0xA2 dla drugiej połowy. Masz ewidentny konflikt adresów! Te układy nie będą razem działać! Wstaw sobie EEPROM 24LC256, jego adres będziesz mógł sobie...
Wszystko działa jak należy, dołączam kod może się komuś przyda. [syntax=basic4gl] $regfile = "m32def.dat" $crystal = 16000000 Dim Sekunda As Byte , Minuta As Byte , Godzina As Byte 'zmienne czasowe Dim Pozycja_menu As Byte 'zmienne pomocnicza do menu Config Lcd = 16 * 2 Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3 , Db4 = Portc.4 , Db5 = Portc.5...
podstawowa aplikacja 51+ zegar PCF8583. Ustawiasz datę i godzinę i po odczytaniu, że jest ta data i godzina uaktywnia się alarm. PS Wystarczy 2051 zamaist 51 ;)
Też mam problem z tym alarmem. Próbowałem zrobić według wskazówek zawartych w poście i nic. Czy nie mógłbyś wkleić kawałka kodu który ustawia alarm w układzie PCF8583
ja w swoim kompie pokładowym mam zasilanie z 78l05 i tyle jest też GOLDCAP bo często wyciągam kompa do upgrade oprogramowania i nie chce mi sie co chwile ustawiać zegarka :)
A zamieniasz ustawiane wartości na i z kodu BCD?
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ę...
Zapisz sobie podstawę roku w RAMie (w PCFie) z dokładnością do 4 lat. Czyli dla obecnego roku w RAMie wpisujesz 04, a w rejestrze roku 02. Przed wyświetleniem dodajesz te 2 liczby. Przy ustawianiu natomiast wpisany rok podziel na 4. Wynik wpisz do RAMu, a resztę dzielenia do rejestru roku w PCFie.
Witam! Znalazłem coś takiego, może tam znajdziesz to czego szukasz.http://www.elektroda.pl/rtvforum... ten kod od daewoo juz widzialem - mimo, ze na schemacie jest pcf8583 to kod jest napisany pod ds1307clock i tam jest calkowicie innna procedura ustawiania....
No jeżeli chcesz to połączyć tak, że bateria tylko do PCFa a sieć tylko do Atmegi to jak najbardziej tylko w momencie gdy będziesz chciał wymienić baterię, a zegarek będzie podłączony do zasilania sieciowego to pojawią Ci się bzdury na wyświetlaczu ponieważ będzie on próbował czytać poprzez TWI z PCFa, a PCF będzie wyłączony. Co prawda taka sytuacja...
jak zrealizować programowo zapis czasu do PCF8583 otrzymanego z DCF-a? Tak samo jak otrzymanego z każdego innego źródła. Chociażby wymyślonego. Przecież Twój zegarek jakoś ustawiasz? Albert
Chciałem jeszcze dodatkowo wykorzystać alarm z pcf-a aby o określonym czasie włączał i wyłączał codziennie urządzenie. Może to jakoś podzielić? Timer na procku a alarm z pcf-a? Druga sprawa to nie zabardzo wiem jak tego timera zrobić w procku i jeszcze żeby można było ustawiać jego czas z zewnątrz :cry:
najprościej - 3 przyciski 1. UP (zwiększa liczbę) 2. DOWN (zmniejsza liczbę) 3. SET zmienia parametr do ustawienia (po kolei - hh:mm:ss dd:mm:yy) i aktywację ustawiania robisz np. przytrzymanie przycisku SET przez 3s. potem każde wciśnięcie przycisków up down zmienia liczbę, a SET powoduje przejście do pobierania kolejnej danej
W jaki sposób ustawia się godzinę i datę na tym zegarku? nie widzę na płytce przycisków
Nie przeczę i nie ukrywam że orłem nie jestem i potykam się o kamyczki ale czy po przeczytaniu czymś tam od razu wiadomo jak to zrobić?..nie do końca bo dopiero w praktyce wychodzi ile się zrozumiało z tekstu manuala czy ksiązki.. Dodano po 4 Mimo wszystko pomogliście mi podtrzymując na duchu za co bardzo dziękuje...napisałem obsługę tego menu standardowo...
w PIC'u polecenie I2CInit(x)... cos chyba ustawia.... to x nie wiem co to jest ...
Witam wszystkich. Mam problem z nastawieniem alarmu w pcf8583...próbowałem już różnych kombinacji i ciągle nic. Muszę zrobić budzenie procka przerwaniem int generowanym przez ową kośc. Pewnie robię coś nie tak...proszę bardzo o kawałek kodu (najlepiej w bascomie) nastawiającego alarm. ps. kość jest sprawna - datę i godzinę ustawiam i czytam.
Chodzi dokładnie o to, że buduję mikroprocesorowy zegar czasu rzeczywistego z układem PCF8583 zasilany z 230V. Chcę aby po wyłączeniu głównego zasilania było podtrzymywane jedynie napięcie (np. z jakiejś baterii) na układzie PCF8583 tak, aby była pamiętana i aktualizowana godzina, żeby po przywróceniu zasilania na całym układzie nie trzeba było jej...
Wielokrotnie wałkowane. W przerwaniu wrzuciłeś transmisje I2C, CLS, obsługę LCD i inne bzdety. Wydłub to i wstaw do pętli głównej programu. W przerwaniu ustaw tylko sobie jakiś bajt/flagę że coś się stało. Teraz obsługa przerwania zajmuje dłużej niż czas pomiędzy przerwaniami. To się musi sypać. Z PCFa możesz też wyciągnąć sygnał zegarowy (skonfiguruj...
A numer miesiąca odczytuje się poprawnie? W rejestrze statusowym (offset 0) jest bit maskujący odczyt dnia tygodnia. Jeśli jest ustawiony to dzień tygodnia zawsze czyta się jako 0. Nigdzie w programie nie ruszasz tego rejestru, więc nie wiadomo co jest tam wpisane. No i jeszcze jedna uwaga - ten rejestr dnia tygodnia nie zmienia się po zmianie dnia...
Zakładającego temat , patrząc na datę , sprawa już nie interesuje. Ale ..... PCF8583 może mieć adres 160/161 lub 162/163, ustawiane jest to nóżką A0 24C04 może mieć adres : 160/161 , 164/165 , 168/169 , 172/173 , ustawiane jest to nóżkami A1 i A2 Można sobie wybrać żeby się nie pokrywały. Adres układu jest czym innym niż adresy pamięci i ich stron
Wystarczyło dodać I2Cinit i układ działa poprawnie. wyświetla się czas. Teraz tylko ustawianie czasu dorzucić i zegarek gotowy. Temat uważam za zamknięty.
Witam. Pierwsza sprawa. Wpierw ustawiamy wywołanie przerwania a potem włączamy przerwania. INT PCF-a jest podpięty do zasilania.
Witam Potrzebuję w ATMEGA8 + PCF8583 ustawić w Bascomie trzy przerwy o dowolnie ustawianej "H" i "M".(czas wyłączenia i czas załączenia) Pierwsza wartość ma spowodować włączenie, druga wyłączenie i tak trzy razy na dobę. Problem polega na tym że jak się uda raz wyłączyć to się nie załącza.
A nie lepiej odpytywać na przerwaniu timera i klawiaturę i PCF8535? Do programu wstawić semafor ustawiany przerwaniem INT0 i kasowany przy odczycie wskazania zegara. To samo dotyczy innych peryferiów przyłączanych na I2C - dostęp do szyny niech ma tylko jeden wątek. Myślę, że ułatwiłoby to sprawę i to znacznie.
Witam Mam zrobiony zegar elektroniczny z wykorzystaniem PCF8583 i AT89C2051. Czas wyświetlany jest na LCD. Wszystko działa jak narazie dobrze tylko, że po każdym włączeniu (wyłączeniu) zasilania trzeba zegar ustawiać od nowa bo się zeruje. Żeby tego uniknąć do PCF8583 dołączyłem baterię 3V tak, jak na schemacie poniżej. Problem polega na tym, że pamięć...
Z konwersji BCD_na_DEC w przypadku tak przesuniętej wartości dnia tygodnia możesz oczywiście korzystać tylko po co? przeanalizuj sobie kod tej funkcji to zrozumiesz dlaczego o tym mówię. A odnośnie automatycznego wyliczania - to podaj mi jeden przykład co w tym RTC jest automatycznie wyliczane jak piszesz? NIC ;) wszystko jest automatycznie inkrementowane...
No i bardzo dobrze, masz: [syntax=c]DDRD = (1<<PD2); // ustawiasz kierunek pinu jako WEJŚCIE PORTD = (1<<PD2); // podciągasz wejście wewn. rezystorem do VCC GICR = (1<<INT0); // zezwalasz na przerwanie INT0[/syntax] tylko pozbyłem się tych brzydkich makr _BV(), których osobiście nie cierpię ;) ale jak się uprzesz to oczywiście możesz...
Polecenie "Cursor off" możesz umieścić przed pętlą "Do - loop", przecież wyłączasz go tylko raz. Polecenie "Locate" możesz zastosować do każdej zmiennej - "Godziny", "Minuty", "Sekundy". Sprawdzasz przed wyświetleniem czy zmienna jest mniejsza od 10, jeśli tak ustawiasz odpowiednią pozycję za pomocą "Locate x.y" i wyświetlasz. Jeśli nie to wyświetlasz...
A jak inaczej czytać PCF-a jak nie przez I2C? Widzę że humor dopisuje :D Otóż, usiądź bo to może Cię zaskoczyć, TWI to sprzętowa, dużo lepsza od programowej, kiedy mamy możliwość skorzystania z dedykowanych pinów, obsługa I2C wbudowana w mikrokontroler. Żeby jej użyć należy ją najpierw skonfigurować dwoma komendami. W przeciwnym wypadku korzystasz...
Witam! Zbudowałem sterownik do akwarium, który steruje 6 lampami (świetlówkami) imitując świt i zmierzch w akwarium. Urządzenie zrobiłem na procesorku AT89C2051. Nie jestem do końca z urządzenia zadowolony, ponieważ 2 kB pamięci i tylko 2 porty nie do końca rozwiązały problem. Np. ustawianie zegara realizuję poprzez włożenie w podstawkę 2 procesora...
A możesz skontaktować się ze mną na gg?? Wytłumaczyłbym Ci trochę, bo tak trudno trafić, co już wiesz a czego jeszcze nie!! Wszystko w zasadzie można wyczytać z pdf-a, opisującego PCF8583, do pobrania ze strony Philipsa. Ogólnie mogę powiedzieć tak: 1. Rok: Właściwe rejestry zegarowe PCF8583 nie przechowują całej liczby oznaczającej rok, a jedynie cyfrę...
(at)GanzConrad - to całe urządzenie będzie zasilane z baterii, więc nie trzeba dodatkowego podtrzymania :D I racja - ledy źle wpięte (at)ATmegazord - jeśli chcesz COKOLWIEK zobaczyć na tym LCD to potrzebujesz napięcia ujemnego :D Do jego "wytworzenia" potrzebowałbyś jakiegoś inwertera napięcia (najlepiej scalonego - podpinasz wtedy tylko 2 kondki i...
http://obrazki.elektroda.net/36_12727083... Witam. Dzisiaj chciałbym zaprezentować układ który wykonałem na zaliczenie przedmiotu Technika Mikroprocesorowa na Politechnice Opolskiej. Układ nazwałem "REJESTRATOR". Sercem układu jest Atmega32. Program został napisany w BASCOM-ie. Zajmuje 42%. Pomiary wykonywane są na 3 czujnikach: - Temperatura...
Masz dwie metody: 1) Łatwiejsza - Ustawiasz Clock mode, timer na zero, timer alarm, timer na odliczanie minut, wpisujesz do rejestru alarmu timera 15, czekasz na przerwanie. Po przerwaniu zerujesz rejestr alarmu, zerujesz flagę alarmu i zerujesz timer. Control status register (0x00) = 0000 X1XX Timer register (0x07) = 0 Alarm control register (0x08)...
I2C_SDL_HI; I2C_SCL_HI; ?? To wg Ciecie uznacza ze sa w stanie niskim ?? (No chyba że to _HI oznacza że sa w stanie rozbawionym) A po START ustawia niski bo szykuje transmisje bitu Do czego służy to opóżnienie o 3 takty kwarca Lektura: https://pl.wikipedia.org/wiki/I%C2%B2C https://learn.sparkfun.com/tutorials/i2c - tu masz ładnie opisane albo trudniejsze:...
Zerknij tu jak jest wykonywany odczyt z linii i porównaj [syntax=c] #ifndef _AVR_TWI_ #define _AVR_TWI_ #ifndef TWI_SPEED #define TWI_SPEED 100000 #endif void twi_init() { TWBR = (F_CPU / TWI_SPEED - 16) / 2 + 1; } void twi_start() { TWCR = (1<<TWINT)|(1<<TWSTA)|(1<... while (!(TWCR & (1 << TWINT))); } uint8_t twi_read_byte(uint8_t...
...nóżkę int0 pcf8583 (7) trzeba podłączyć do PD.2 w uC przez układ RC, ponieważ pcf8583 daje przebieg o częstotliwości 1Hz, wypełnienie 50%... a nie chcemy, żeby przerwanie było wywoływane co chwile przez te pół sekundy... :P W takim przypadku , ustawiamy wyzwalanie zewnętrznego przerwania na jedno ze zboczy (opadające lub narastające) , a układem...
Jeśli chciałbyś ustawić weekday alarm to do rejestru 0x08 wpisz 0xa0 tak jak napisales w pierwszym poscie i wtedy w rejestrze 0x0e ustawiasz valid dni tygodnia. Reszte rejestrów wpisz recznie i sprawdz czydzialaja. Powinno byc OK powodzenia
Witam serdecznie! Chcę uzyskać efekt: if (godzina i minuty znajdują się w zakresie od do) then włącz urządzenie end if Mogę ustawiać zmienne wykonywania polecenia (o określonej godzinie pobranej z PCF8583) w zakresie godzin od do. Nie istotne jak je nazwano, ważne aby urządzenie pracowało od pewnej godziny i minuty do innej godziny i minuty....
Chodziło mi o to, że nie potrafisz pisać w języku C i chyba od kursu tegoż języka powinieneś zacząć. Można też kupić sobie książkę np "kernighan ritchie ansi c" albo coś od razu pod kątem mikrokontrolerów czyli książkę pana Mirosława Kardasia lub pana Tomasza Francuza, ponieważ są dość świeże i profesjonalne wydania (tak myślę, nie czytałem :P) bo definy...
Mam problem ze zliczaniem czasu przez timer w układzie PCF8583. Na starcie programu ustawiam timer: I2cstart I2cwbyte 162 I2cwbyte 0 'rejestr kontrolny I2cwbyte &B00000100 'alarm aktywny I2cstop I2cstart I2cwbyte 162 I2cwbyte 8 'rejestr kontrolny timera I2cwbyte &B01000010 'zapis rejestru alarmu 'odmierzanie sekund ' włączony alarm timera I2cstop I2cstart...
Deklaracje rejestrów są w bibliotece. Raczej powinno dać się jej ufać. Spróbuj użyć pierwszego I2C bo może rzeczywiście biblioteka z tym drugim nie daje sobie rady. Średnika jeszcze brakuje po drugim while'u w tej czytającej funkcji. Nie wiem jak w tym nowszym MPLAB'ie się to ustawia, ale jeśli możesz użyć programatora jako debugera, to zrób to i sprawdź...
Jako przykład podam program dla 8051 napisany przeze mnie w asemblerze realizujący funkcje zegara: - obsługa 4 wyświetlaczy 7seg poprzez rejestry szeregowe 74595 - obsługa 5 przycisków przez rejestry 74165 - obsługa przerwania do generowania dźwięku "piknięcia" przy naciskaniu przycisków, czasu lampki i synchronizacji DCF, wszystko na jednym liczniku...
ciężko naprawdę wydumać o co ty pytasz. nie wiesz jak 5 min odmierzyć?? ustawiasz sobie zmienna np na 5 i co minutę zmniejszasz ją o 1. jeśli osiągnie 0 to wykonujesz daną akcję
Potrzebowałbym zegar na Atmega16 + PCF8563 Posiadam gotową płytkę do uruchomienia tego ale nie bardzo wiem jak napisac program.Chodzi o to zeby za pomoca przycisków na płytce ustawiać czas i wyświetlać to na wyświetlaczu. schemat gotowej płytki znajduje sie tutaj ... Jakoś nie mogę zlokalizować na tym schemacie , PCF8583 :| Piotrek
Załozeniem budowy zegara było żeby był bezobsługowy, postawiony raz z ustawioną dobrze anteną ma działac i działac...., synchronizacja z wzorcem czasu odbywa sie na bierząco, jeśli tylko zegar stwierdzi że odebrana ramka jest wporządku ustawia sie do niej, jeśli znajdzie błędy w ramce, pomija ją i odczytuje zawartoś RTC (PCF8583), która jest korygowana...
Akurat z C dla mikrokontrolerów to jestem cienias ale widzę, że w main.c jest zdefiniowana funkcja ustawiania zegarka a Ty jej nie wywołujesz. Od razu zaczynasz od odczytu a przecież zegarek PCF8583 po załączeniu zasilania nie chodzi i ma w rejestrach raczej przypadkowe wartości (o ile sobie dobrze przypominam). Jeśli chcesz sprawdzić, czy mam rację...
Tak też robię :) Wszystko się zgadza oprócz tego, że nie sprawdzam przerwania po I2C. Kwestia jest taka, że ten zegar generuje przerwanie jednokrotnie, więc w obsłudze przerwania w procesorze trzeba ponownie ustawić pewne flagi by zegar wygenerował kolejne przerwanie za sekundę i tak w kółko. Problem w tym, że nie wiem czemu po pewnym nieustalonym czasie...
komenda Getrc5(address , Command) blokuje inne przerwania na czas jej wykonania stąd przestaje ci na chwilkę działać przerwanie zliczające czas a wiec zegar będzie się późnił. Ostatnio robiłem właśnie zegar wiszący wysoko i ustawiany właśnie przez pilota rc5 ale od razu zrobiłem go na pcf8583. Może dasz radę dołożyć go do swojego projektu. wg mnie warto....
A z czym dokładnie masz problem? Sam układ zegara działa poprawnie - podłącz diodę led (np czerwoną z rezystorem sporym np 1k) do wyjścia INT zegara i zobacz czy jest tam (na oko) 1Hz? Druga sprawa co do ustawień kierunków linii SCL SDA - gdy używam sprzętowego i2c to nic z tym nie robię, poza tym jeżeli już chcesz ustawiać kierunek tych linii to zauważ,...
Głupi błąd:) Już rozwikłany:) aliasy odpowiadające wyjściom powinny być nie np . Grzałka alias pinx.x ale grzalka alias portx.x. czyli taka głupia prosta sprawa:) ale mam problem z zegarem na pcf8583 niby wszystko jest ok liczy czas ustawia się ale czasami (nawet częściej) pokazuje aktualną godzinę i nagle pokazuje np.: 165:165:165 i po sekundzie wraca...
Wystarczy zajrzeć do datasheeta PCFa. Musisz odczytać jeszcze rejestr 6. W nim 3 najstarsze bity to binarna cyfra w zakresie 0 - 6 (teoretycznie to BCD, ale na jednym półbajcie nie ma to znaczenia), oczywiście przesunięciem bitowym wyciągniesz te bity. Musisz założyć, który dzień jest początkiem tygodnia, np. 0 - poniedziałek, następnie switchem wyciągać...
Ten sterownik zaprojektowałem i napisałem program dawno temu ale myślę że może komuś się taki projekt przyda lub będzie bazą dla innego projektu. U mnie sterownik włącza i wyłącza gniazdka przekaźnikami półprzewodnikowymi z optoizolacją Funkcje realizowane przez sterownik: wyświetlanie bieżącego czasu , daty i dnia tygodnia z możliwością jego programowania...
Szynę I2C najprościej sprawdzić analizatorem stanów logicznych. Może podeprzesz się jednym programem i podeślesz na forum go to na pewno ktoś znający BASCOM pomoże z tym problemem. Wiem, że ustawia się coś w programie BascomAVR aby wszystko dobrze pracowało. Ale nie pamiętam co dokładnie.
Tak, są podciągnięte. Problem się robi po dodaniu tej jednej linijki. Wydaje mi się że to będzie problem ze zmiennymi. Dodano po 10 Wystarczy że np. usunę całe menu ustawiania zegara i wtedy adc wyświetla - ale przecież jakoś ten zegar muszę ustawiać. Podobnie ma się sytuacja jak zostawię ustawianie zegara a usunę linijki odpowiadające za wpis do pamięci...
Zrobiłem jednak wybudzanie na timerze w pcf8583. Co 1 sek. lub co minutę (wtedy nie pokazuję sekund). Niestety oprócz kasowania flagi w rejestrze 00 (bit 0) trzeba ustawiać za każdym razem liczbę w rejestrze 07, który odlicza jednostki (ss/s/m/h/d w zależności od ust. bitów 0,1,2 w rej. 08 ) od ustawionej liczby do 99 Aktualnie zasilam z 3 akumulatorków...
Witam mam pytanko, czy jak chce ustawić godzinę 14:21 na zegarze to muszę dokonać korekcji w kodzie BCD o liczbę 6 czy nie. Jak wprowadzam z klawiatury te ustawienia i zapisuje do mojej PCF- ki to otrzymuję na LCD 01:01 i sekundy są wyświtlane prawidłowo. a jak wprowadzam godzinę mniejszą od 9 to jest ok, czyli ustawiam godzinę 9 i 21 minut to po uruchomieniu...
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...
Zauważ tylko, że teraz nie konwertujesz odczytanych wartości z RTC i są ciągle w formacie BCD. Przy wyświetlaniu są one konwertowane tylko na string dla wyświetlacza, a same nie ulegają zmianie. Tak na dobrą sprawę musiał byś je konwertować PO wyświetleniu... ale po co.... Przy ustawianiu operujesz na zmiennych Ustaw_h itd, jeśli zegar pochodzi kilka...
Nieszczęsny kod: Potwierdzam :wink:. Masz taki bałagan że niewiadomo co do czego. Musisz to wszystko sobie poukładać (zobacz jak to robią inni). Do ustawiania pinów portu wykorzystaj makra, nazwij funkcje zgodnie z tym co mają robić. I reaguj opdpowiednio na ACK bo po to on jest żeby weryfikować transmisję.
Osobiście uważam, że zegar na tablicy mógłby być autonomiczny. Wtedy zmianie ulegałyby tylko niektóre parametry na tablicy. Przecież nazwa gości i gospodarzy są statyczne. Odpada kilka ramek. Ustawiamy je raz podczas startu/inicjalizacji i po krzyku. Czas można zrobić na PCF8583 z podtrzymaniem albo kondensatorem back-up (np. 2,2F/5V). Na początku meczu...
Oczywiście, że tak - po 10kΩ. Co ciekawe dodałem wszystkie możliwe przerwania I2C aby zobaczyć czy coś się dzieje. Przy wejściu w while, o którym była mowa po chili występuje przerwanie I2C_IT_ALERT. Zgodnie z reference manual, to jest jakieś przerwanie od SMBus, ale przecież nie ustawiałem magistrali w tryb SMBus... Przed inicjalizacją I2C (struktury)...
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...
Witam. Przedstawiam w załączniku kodu w Bascomie obsługujący zegar na ATmega 16/32, PCF 8583, DS18B20 i MAX7219 (osiem cyfr) obsługiwany wyświetlacz po SPI. Zegar, budzik, temperatura, data, utawienie jasności. Może komuś przydadzą procedury bascomowe we własnych opracowaniach. Pracuję nad ustawianiem za pomocą pilota. Jak przetestuję - dokleję do postu....
... człowieku, taka tolerancja to prawie pikuś ;) ... jak się pobawisz trymerkiem to i bez żadnego miernika to osiągniesz poświęcając kilka dni(dób) na dostrojenie opóźnienia lub przyśpieszenia. Zakładając oczywiście, że układ będzie miał cały czas w miarę równe zasilanie (bez włączania na dłuższe okresy zasilania awaryjnego) i jesli będzie pracował...
Zastosowalem sie do twoich porad "Andy74", zegar z data dziala ale potrzebuje jeszcze wskazan roku. Zamiast &B00001000 wpisalem 8 bo wg. tego co jest w dokumentacji wtedy mozliwy powinnien byc odczyt roku(tak mi sie wydaje) ale u mnie jakos to nie dziala i np. luty ma podczas ustawiania tyle co inne miesiace czyli 31 dni.. Jak zrobic aby automatycznie...
Witam. Dzieki za zainteresowanie;). Piszac o sekwencji mialem na mysli odczyt danych co sekunde z DS1307. Procedure do obslugi I2C jest napisana w jezyku C. Wszystkie funkcje startu, stopu, wyslania i odebrania danej sa przetestowane zarowno na PCF8583 jak i na mierniku tem. LM92. Oczwywiscie bit CH ustawiam na "0" na samym poczatku. Zapisisuje oczywiscie...
Nie znam 100 sposobów bo po co, po prostu jak jest potrzeba to wymyśla się taki który będzie pasował do danej sytuacji, nie ma sensu uczyć się sposobów na pamięć. Jeśli rozumiem jak działa PCF8583 to nie jest problemem wymyślenie sposobu - to miałem na myśli. No więc np. tak jak napisałem wyżej. Podczas ustawianie roku np. ustawiając 2009, zapisuję...
Mam jeszcze jeden problem w zwiazku z tym ukladem. mam ustawiony czas: godzina: 23.59 data: 05-04-2006 czekam 1 minute i godzina zmienia sie prawidlowo na 00:00 ale data ustawia sie na 06-24-2006. Nie wiecie czego to jest wina? Wszystko wyswietlane za pomoca jednej funkcji, wiec ona na pewno nie zawiera bledu.
http://obrazki.elektroda.pl/2288772000_1... Witam, W końcu jest, po długich bojach wynikających z ciągłego braku czasu, praktycznie skończony zegar tekstowy made by Mitsubishit W zegarze się zakochałem jak tylko go ujrzałem w wersji oryginalnej na niemieckiej stronie producenta. Emocje ostudziła cena - jedyne 996Euro. Ale od tego czasu...
Witam mam pytanko, czy jak chce ustawić godzinę 14:21 na zegarze to muszę dokonać korekcji w kodzie BCD o liczbę 6 czy nie. Jak wprowadzam z klawiatury te ustawienia i zapisuje do mojej PCF- ki to otrzymuję na LCD 01:01 i sekundy są wyświtlane prawidłowo. a jak wprowadzam godzinę mniejszą od 9 to jest ok, czyli ustawiam godzinę 9 i 21 minut to po uruchomieniu...
Też tak myślałem, ale albo coś mam w programie nie tak, albo sam już nie wiem. Bo w obu przypadkach wywołania przerwania (alarm, timer) ustawia mi zawsze tylko i wyłącznie bit 1 w rejestrze 0x00. Dodano po 18 Poza tym nie wiem czy robię to prawidłowo Ustawianie Timer'a: Zeruję rejestr 0x07, do rejestru 0x0F ładuję wartość którą ma odliczyć (chodzi mi...
http://obrazki.elektroda.net/79_12772194... Witam serdecznie! Ostatnio dużo zajmowałem się układami z RTC i duże utrudnienie stanowiło każdorazowe ustawianie zegarów po odłączeniu zasilania. Nie chciałem modyfikować i przy okazji psuć wyglądu obecnie posiadanych płytek testowych, więc postanowiłem wykonać na uniwersalnej płytce moduł zegarów...
Jeśli zastosowałeś kwarc o niższej częstotliwości niż *MHz (ile to jest "gwiazdka"??) to program będzie się wykonywał poprawnie. Podejrzewam, że po prostu nie ustawiłeś wcześniej zegarka :wink: czyli? EDIT: aha... * to 8MHz .... shift mi sie nacisnal ma to jakis zwiazek z OPTION_REG albo z I2Cinit(x)... jakie x wpisac? co wogole poustawiac dla : kwarc...
Witam W ramach dalszego eksperymentowania z AVR i Bascom popełniłem połączenie odczytu z DS18B20 z sterowaniem wyjściem uC ( przez tranzystor FET ) + dodatkową atrakcję - buzer, który sygnalizuje wł/wył tranzystora/wyjścia. Chciałem dodać możliwość zmiany temp max i min, przez proste menu. Menu zrobiłem w oparciu inny mój kod obsługujący ustawianie...
Ja robiłem coś takiego. Układ wykorzystywałem do automatycznego polewania stropu wodą w upalne, letnie dni. Całość składa się z: - uC AVR ATMega8 - układu zegara PCF8583 z CR2032 - klawiatury matrycowej 4x4 - wyświetlacza LCD - klucza tranzystorowego do sterowania elektrozaworu wody 12V - stabilizatora 5V Możliwości układu: - ustawianie aktualnej godziny...
http://obrazki.elektroda.net/3_122786033... Jest to prosty zegarek zbudowany na ATmega8 i wyświetlaczu VFD , program napisałem w Bascomie , odliczaniem czasu zajmuje się PCF8583 , po zaniku zasilania pcf jest podtrzymywany z kondensatora 0.22F ( czas pracy na kondensatorku około 3 dni) . Czas ustawiam za pomocą pilota RC5 . . . . . . . . ....
pcf8583 nie ma wbudowanego kwarcu spróbować z całkiem nowym zewnętrznym 32kHz? tak przeglądnij również biblioteki (zaraz po tym jak przeczytasz cały datasheet). Nie zagłębiałem się w nie, ale wyglądają znajomo i z tego co pamiętam, niektóre z funkcji musiałem pisać od nowa. Dodano po 10 co do init to pod nim kryje się jakieś write init zapisuje w PCF...
Temat nie dotyczy na wprost maszyny CNC, ale chodzi o trzyosiowy napęd oparty na mikrokontrolerze sterowany aplikacją na PC, docelowo RPi i ten działa wydaje się być najbliżej tematu. Jeśli jest jakiś lepszy dział do takiego zagadnienia to prośba o przeniesienie. Generalnie mam pomysł na całość, ale zostało kilka pytań bez odpowiedzi. Koncepcja jest...
Witam Na początek napisze ze jestem początkujący w C. "Napisałem" program który czyta czas i datę z PCF8583 i pokazuje to na LCD.I wszystko byłoby ok gdyby nie to ze dla testu na przerwaniu procesor ma generować krotki sygnał dźwiękowy co 1 sek. i "prawie" jest ok TYLKO raz na jakiś czas nie chce piknąć na mijającą sekundę, tak jakby gubił te sekundę....
smithpl - Po co zapisywanie czasu do EEPROMu, skoro po ponownym włączeniu zasilania czas trzeba będzie ustawiać od nowa? Do tego jest potrzebne albo podtrzymywanie bateryjne całego układu, albo osobny układ RTC do pomiaru czasu z własnym podtrzymaniem (np. PCF8583). Dodatkowo taki zegar będzie dokładniejszy niż ten zrobiony na uC i zwykłym kwarcu....
No to wersja minimalistyczna+. Bierzesz zegarek PCF8583. To jest na I2C. Taktujesz go sygnałem 50Hz-bity 4 i 5 w rejestrze 00 ustawione 01. Sprawdzasz procesorem czy jest sygnał z sieci. Jak nie to ustawiasz te bity na 00-wtedy taktowanie ma z kwarcu. Wady-dodatkowy element. Zalety: Mało żre prądu- na podtrzymaniu bateria 3V i dwie diody będzie chodził...
W PCF8535 można zapisać tylko cztery wartości odpowiadające za rok. Tak jak napisałeś zapisuje się je za pomocą dwóch bitów co daje właśnie cztery możliwe do uzyskania wartości. Dlaczego ???? Dlatego że zapisujemy numer roku biorąc pod uwagę powtarzalność cyklu roku przestępnego co 4 lata. Wartość '0' zapisana jako wartość roku oznacza rok przestępny....
Witam Mam prośbę: poszukuję prostego programiku do odczytywania i ustawiania zegara (godziny, minuty, sek) na układzie PCF 8583, który pracuje na I2C i jest podłączony pod linie SDA i SDL Atmegi32. Chodzi głownie o przetestowanie układu. Język BASCOM. Z góry dziękuje za pomoc :) Pozdrawiam Wojtek
Wygląda, że funkcje TWI_read_buf/TWI_write_buf są już dostosowane do 8583 i ustawiają startowy adres - jest on chyba przekazywany jako drugi parametr. Niestety pytający nie załączył tych funkcji w pokazanym kodzie. W takiej sytuacji może faktycznie działać nieco lepiej, jednak dlaczego czytane są tylko 3 bajty zaczynając od dziesiętnych częsci sekundy?...
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....
no wykonuje ci się wszystko bardzo wolno - ponieważ w procedury obsługi przerwań pakujesz sobie czaso-żerne procedury w tym te najgorsze czyli opóźniające. popatrz ile np u mnie zajmuje kod przerwania od zegarka PCF // przerwanie INT1 generowane jest przez PCF8583 co 1 sekundę // ustawiana jest flaga od której zależy wyświetlanie // czasu, daty, temperatury...
Zamieniłem adresy, ale niestety bez zmian. Coś musi być źle, ale co? Co zauważyłem, to za każdym razem program ustawia max wartość pwm1a czyli 250. Może ja coś źle w kodzie zrobiłem? A może wartości pwm nie da się zapisać w eepromie? Bo próbowałem na różne sposoby i za każdym razem to samo - nie pamięta ustawienia zewnętrzny eeprom.
(at)dondu Twoje artykuły czytałem dokładnie ;-) Z kodu poniżej wycięte ustawianie portów (bonie widziałem żadnej różnicy w zużyciu prądu). Procek ustawione fusami na 8MHz wewnętrzny z podziałem przez 8 [syntax=vbnet] $crystal = 1000000 ' ustawiamy prędkość zegara $baud = 9600 ' ustawiamy prędkość transmisji $hwstack = 220 ' ustawiamy wielkość stosu...
Wskazane materiały są mi znane a wydawałoby się prosty problem ciągle pozostaje. Wskazany adres jest polskim tłumaczeniem danych producenta, który nie podaje sposobu ustawiania alarmu. Informacje internetowe najczęściej prowadzą do danych producenta i tak koło się zamyka. Liczę, że odezwie się osoba, która dokładnie zna sposób rozwiązania tego problemu....
Poprawiłem rezystory a napięcie będzie 6v lub 7,5 a mam jeszcze pytanie przydały by się jakieś przyciski do ustawiania zegara tylko jak je podpiąć a czy potencjometr jest dobrze podpięty i jakie te kondensatory mają być bo zastosuje dwa za stabilizatorem http://obrazki.elektroda.net/31_12513044...
http://obrazki.elektroda.pl/5959929700_1... Witam, dzisiaj prezentuję miniprojekt - zegar binarny. Nie pytajcie, dlaczego i po co, użyteczność może i jakąś tam ma, ale nie o to chodzi. Jakiś czas temu zrobiłem sobie prosty binarny zegarek naręczny, spodobał mi się i tak postanowiłem zrobić wersję stacjonarną :D Zegar pracuje w trybie...
Na początku chciałem się serdecznie przywitać, to mój pierwszy post... Jestem bardzo początkującym programistą avr'ów i natrafiłem pewnie na bardzo prosty do rozwiązania problem, lecz samemu chyba sobie nie poradzę: Robię klasyczny zegarek na atmedze + pcf8583, schemat poniżej: Korzystam z gotowych bibliotek rklibavr. Symulacja w programie proteus....
Witam Mam problem a raczej nie wiem jak zrobić możliwość włączenia na dany czes i wyłączenia na dany czas jednego pinu w atmedze.Dodam ze w układzie mam PCF8583,ale nie mam bladego pojęcia jak zrobić takie ustawianie.Czy wykorzystać do tego PCF8583 czy Timer z atmegi ? Chodzi o takie coś Włącz na 10 minut wyłącz na 3 godziny i ponownie włącz na 10minu...
Mam takie pytanie ponieważ już "zgłupiałem". Czy PCF8583 po włączeniu zasilania automatycznie sam generuje sygnał na INT z częstotliwością 1Hz ? Do tej pory byłem pewien, że tak. Bez żadnego ustawiania w rejestrach, ale widzę na forum elektrody, że ludzie to specjalnie ustawiali w rejestrze alarmu...To w końcu jak z tym jest ? Zegarek powinien liczyć...
pcf8583 asembler biblioteka pcf8583 atmega pcf8583
czujnik biegu wstecznego tworzyć instalka migający klucz
smartwatch wgranie smartwatch aplikacja
Światło nie działa po odłączeniu czujnika ruchu - co zrobić? Buczenie w głośnikach wzmacniacza WS432 - diagnoza i rozwiązania