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)...
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...
W załączeniu pdf z opisem pcf-a po polsku. Masz tam opisane jakie rejestry należy ustawiać.
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 ;)
Próbuję napisać program zegara ale mam problem z ustawianiem czasu, pominąwszy to, że menu działa jak działa to nie mogę ustawić minut i godzin większych niż 10 bo wyskakuje mi liczba 161, jeżeli wgrywam sam kod menu bez obsługi układu pcf wszystko jest ok. Proszę o pomoc. [syntax=basic4gl][/syntax]$regfile = "m32def.dat" $crystal = 16000000 Enable...
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ść...
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...
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
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.
A zamieniasz ustawiane wartości na i z kodu BCD?
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 :)
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....
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
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
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 jaki sposób ustawia się godzinę i datę na tym zegarku? nie widzę na płytce przycisków
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.
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
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.
w PIC'u polecenie I2CInit(x)... cos chyba ustawia.... to x nie wiem co to jest ...
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...
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...
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 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.
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:
Witam. Pierwsza sprawa. Wpierw ustawiamy wywołanie przerwania a potem włączamy przerwania. INT PCF-a jest podpięty do zasilania.
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...
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...
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...
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...
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...
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ę...
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)...
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...
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:...
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ęć...
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....
...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...
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...
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...
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...
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 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. 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...
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...
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
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ź...
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ę...
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...
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...
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ę
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, ja miałem ostatnio różne dziwne problemy z PCF8583 w tym również to że przestawał chodzić tylko stał w miejscu. Oczywiście jak to zwykle bywa - nie był to żaden błąd PCFa tylko moje błędy. Przede wszystkim szybko odkryłem, że mam coś nie tak z procedurami zapisu I2C - tzn niby zapisywało ale działy się czasem rózne rzeczy. I na końcu wyszło,...
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...
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ę...
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...
Jakieś to dziwne. Ustawiasz PCF aby generował z INT sygnał co 1s. Sygnał ten dajesz np. na INT0 procesora. Potem w programie: On int0: ustawianie, sprawdzanie itp. To że PCF jest I2C nie sprawia że należy sprawdzać przerwania po magistrali I2C. Można bardziej sprzętowo- szybciej.
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...
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.
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...
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ć...
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....
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...
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...
Witam! Zaczynam swoją przygodę z AVR i mam mały problem. Chciałem ustawić godzinę i datę i wszystko cacy poza tym, że gdy dzień miesiąca dojdzie do 30 to przeskakuje na 10 zamiast 1. Próbowałem też zamaskować rok,ale bez skutku Nie mam pojęcia dlaczego tak się dzieje. Poniżej umieszczam fragment kodu i proszę o pomoc: [syntax=c] // Ustawianie czasu...
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
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...
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ę.
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...
Chciałem uzyć RTC jak w temacie. Wszystko pieknie i ładnie tylko ze jest jeden problem nie wiem czemu ale ukłądzk ten zlicza 2x za szybko (tzn incrementuje minute co 30s). Uzyłem nowego kwarcu 32,768KHz Umieszczem lisning programu w Bascomie.Dziwne jest to ze zegarek chodzi akurat 2 x szybciej, gdyby był kwarc uszkodzony to raczej by wcala nei działało...
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....
I2cstart 'inicjalizacja magistrali I2C I2cwbyte 160 'podanie adresu PCF8583 do zapisu I2cwbyte 0 'wybranie pierwszego (kontrolnego) rejestru I2cwbyte 8 'ustawienie zapisu rejestru daty I2cstop 'koniec transmisji I2cstart 'inicjalizacja magistrali I2C I2cwbyte 160 'ustawianie trybu zapisu I2cwbyte 2 'wybranie drugiego rejestru (sekund)...
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...
I2cstart 'inicjalizacja magistrali I2C I2cwbyte 160 'podanie adresu PCF8583 do zapisu I2cwbyte 0 'wybranie pierwszego (kontrolnego) rejestru I2cwbyte 8 'ustawienie zapisu rejestru daty I2cstop 'koniec transmisji I2cstart 'inicjalizacja magistrali I2C I2cwbyte 160 'ustawianie trybu zapisu I2cwbyte 2 'wybranie drugiego rejestru (sekund)...
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...
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...
Witam Mam taki malutki problemik... Podłączyłem sobie do AT89C2051 zegar PCF8583 i termometr DS18B20. Wszystko ładnie, pięknie zczyta (czas i temp.), ale jak pisze programik do ustawienia czasu to mi się pojawia komunikat o ograniczeniach wersji DEMO (procedura zapisania danych w PCFie się mieści... nie mieści się ustawianie tych danych). Pytanko mam......
Rzeczywiście pomogło, także wielkie dzięki. Teraz zostaje jeszcze obsługa daty oraz ustawianie za pomocą klawiatury. Widzę, że testowałeś te kody z książki, więc jeżeli możesz to zdradź mi też sekret czemu jeżeli podłączę czujnik temperatury to zamiast temperatury pokazuje mi 'error' wiem, że z powodu błędów w transmisji. Jeżeli odłączę pin czujnika...
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...
Nie mam pull-up'a zewnętrznego, zmieniłem w kodzie żeby był ustawiony w programie, ale to też nie pomogło. Może przedstawię cały kod: main.c [syntax=c] #define F_CPU 8000000UL #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include "mod_lcd_3310.h" /* * PRZERWANIA */ ISR (INT_RTC) { lcd_string("przer", FONT_NORMAL,...
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.
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...
(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...
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ż,...
Program przekopiowałem już toczka w toczkę z płyty dołączonej do książki, oczywiście zmieniłem pod moje podłączneie do procesora ukłądu pcf8583 ale nadal nie wywołuje przerwania ten układ i nic nie mogę z niego zczytać. Jak sprawdzić czy czasem w jakiś sposób nie uszkodziłem tego układu? Jedyna różnica przy podłączniu odbiegająca od książki to nie podłączone...
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 . . . . . . . . ....
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...
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"...
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...
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...
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ł...
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ę....
Wyciąłem tylko obsługę EEPROM bo mi to nie potrzebne. Jak by ktoś mógł by się przyjrzeć to był bym wdzięczny. [syntax=c] /* * main.c * * Created on: 2010-09-07 * Autor: Mirosław Kardaś * * Program korzysta ze sprzętowej obsługi I2C/TWI * Umożliwia zapis danych do RTC oraz EEPROM a także * oczyt z tych urządzeń * */ #include <avr/io.h> #include...
Niedawno zacząłem programować w bascom. Mam problem z transmisją I2C nie potrafię w ogóle nic w tym kierunku zrobić (wiem że na początku trzeba skonfigurować piny transmisji). Ogólnie to buduję zegarek i już wszystko mam ale najgorzej z programem. Prosiłbym o podpowiedzi jak to wykonać albo jakieś linki gdzie mogę się dowiedzieć jak wykonać praktycznie...
(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...
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)...
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ę...
Linijka z ustawianiem portów może wywoływać przerwanie. Musisz trochę nad tym popracować. Ponadto, czy masz analizator stanów logicznych? Jeśli nie to kupuj szybko ;)
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
ustawianie czasu pcf8583 pcf8583 asembler biblioteka pcf8583
roger resety stm32 cmsis telefon upadł ziemię
nierównomierne ogrzewanie tulejek nierównomierne ogrzewanie tulejek
Renault Laguna II 1.6 16V – tanie sprężyny tylne z podkładkami RIDEX, KYB, smar miedziowy, silikonowy Przejściówka DIN-5 na mini jack 3,5 mm – brumienie, pętla masy, ekranowanie, izolatory