Trzeba koledze uswiadomić (...) Nie jestem przekonany do takiego podejścia, rzeczowy kolega powinien to wiedzieć skoro używa I2C. Obsługa I2C jest bardzo dokładnie opisana w dokumentacji Philipsa. Pozdrawiam, GSM
Po zapoznaniu się z datashetem i polskimi ubogimi tłumaczeniami napisałem kawałek kodu aby zapisywać i odczytywać 4 nastawy czasu Zapis do PCF8583 if(!(PIND & _BV(7))) {// _delay_ms(30); TWI_write(zegar,0x10,rtc_pcf[0... kanał 1 włącz TWI_write(zegar,0x20,rtc_pcf[1...
Ten PCF nie może poprawnie działać. Jest &B10100000 = 160 - adres PCF8583 dla zapisu &B10100001 = 161 - adres PCF8583 dla odczytu danych Powinno być odpowiednio &B10100010 lub 162 -adres PCF8583 dla zapisu &B10100011 lub 163 - adres PCF8583 dla odczytu danych
witam tak jak w temacie zrobiłem zegarek z timerem na podstawie pomysłu z elektronika 2000 z września 2001 Wszystko gra jak powinno timer działa dokładnie natomiast nie mam mozliwości zmiany daty i godziny tzn nie zapisuje się w pamięci procka nowa data i godzina tylko pozostaje ta domyślna . myslałem że może napięcie jest za niskie ale jest oki. Sam...
Witam. Standardowe połączenie atmega plus PCF8583, standardowe procedury odczytu i zapisu a mimo to zapis w ogóle nie działa a odczytuje same głupoty. Działanie PCF-a też jest strasznie dziwne. Mianowicie sekundy odlicza normalnie ale dziesiątki sekund zwiększa już gdy jednostki sekund mają wartość 9 a nie 0. Znów gdy dziesiątki sekund mają wskoczyć...
Problem rozwiązano wynikał on z nioewłaściwego adresowania kostki.
Schemat jest dobry więc to nie wina "elektroniczna". Jako że C nie znam to mogę tylko doradzić żebyć sprawe robił etapami: 1) najpierw spróbuj coś wyświetlić na LCD 2) odczytaj 1 bajt z I2C (np sekundy) i wyświetl go bezpośrednio na LCD, sprawdź czy faktycznie coś się zmienia co sekundę 3) odczytaj już wszystkie dane z PCF i sformatuj je do pokazania...
Czesc. Poszukuje pomocy na temat zapisu, zamiany i odczytu roku w RTC PCF8583 Jest tam zapis roku w postaci 0, 1, 2 i 3. Tylko takie wartości można wpisać. A jak ma to się do roku w postaci 2005, zakladajac tylko ostatnie dwie cyfry 05 powiedzmy w formacie BCD. Jak taką wartosc zapisac w w rejestrze PCFa.
Witam, tu masz link z przykładem: http://www.elektroda.net/dla_domu/zegar_... Pozdrawiam ArteXL
Odczytywanie godziny minut sekund dni i miesięcy działa, zapisywanie też ALE tylko godziny minut sekund nic więcej rejestry 0x05 i 0x06 nie da się zapisać. Otóż przy jakiejkolwiek próbie zapisu to rejestru 0x05 albo 0x06 odczytywanie i zapisywanie przestaje działać. Wtedy przy próbie odczytu czegokolwiek zwracane są krzaczki. Oczywiście RTC podłączone...
no ale teraz problem u Ciebie jest taki że Twoja pamięć już jest prawdopodobnie uszkodzona. Jej żywotność gwarantowana to 100 000 cykli zapisu. Szacuje że Twój program główny to jakieś 1000 cykli (zawyżam wartość) uC. Jeżeli taktujesz uC z 8MHz, to zabijesz pamięć po 12,5s. Takie rzeczy jak potrzebujesz robi się na pamięci RAM z podtrzymaniem bateryjnym...
Trafiłem na ten temat, bo szukam procedur w asemblerze do PCF8583 , odczyt,zapis (zegar, kalendarz, alarmy). Proszę jeśli ktoś posiada w swoich zbiorach. Spotkało mnie doświadczenie z dziwnym zachowaniem się tego zegara jak wyżej w postach. Problem rozwiązałem programowo, jako że ten pojawiał się sporadycznie. Podaję fragment programu z odczytem zegara...
tak, incr i decr a potem od razu zapis do zegara tej zmienionej wartości, tzn: 1. wciśnięcie przycisku 2. zwiększenie/zmniejszenie wartości z ograniczeniami (np. dla minut przy wartości 60 zmieniasz na 0, a przy próbie przejścia do -1 dajesz 59) 3. zapis do odpowiedniej komórki w zegarku pcf85x3
Niedawno robiłem taki zegarek i proponowano mi napisanie progra,owego roku niz korzystanie z tego z pcf-a. Najpierw musisz ustawić 3 bit w rejestrze kontrolnym np tak: Dim B1 As Byte Set B1.3 I2cstart I2cwbyte 162 I2cwbyte 0 I2cwbyte B1 I2cstop Potem żeby ustawić podstawowe wartości musisz je zamienić na kod bcd a następnie wysłać tak: I2cstart I2cwbyte...
Declare Sub Gettime Declare Sub Settime Dim S As Byte Dim M As Byte Dim H As Byte Dim Yd As Byte Dim Wm As Byte Podprogram odczytu pcf8583: Sub Gettime I2cstart 'generate start I2cwbyte &HA2 'write addres of PCF8583 (a0 do plusa) I2cwbyte 2 'select second register I2cstart 'generate repeated start I2cwbyte &HA3 'write address for reading info I2crbyte...
Co do PCF8583 - do zapisu pełnego roku wykorzystaj wolny RAM na końcu układu. Od adresu chyba 0x10 masz wolne komórki - w 2 z nich zapisz sobie pełny rok i sprawdzaj jego modulo z danymi w 2-bitowym rejestrze roku układu i w razie konieczności aktualizuj dane w tych 2 komórkach.
Przyczyną może być brak inicjalizacji częstotliwości portu TWI(I2C), rejestry TWBR i TWSR Przydałoby się tez podać: - częstotliwość zegara - gdzie jest podłączona linia A0 układu PCF8583 JarekC
Witam. Od jakiegoś czasu noszę się z zamiarem usprawnienia zegara który jest na PCF8583. Ostatnio wpadł mi w ręce odbiornik DCf a właściwie to budzik z uszkodzonym LCD. Przeglądając sieć, znalazłem informacje na temat zegarów z DCF77 z podstawowym czasem na timerach. Chciałbym dołożyć DCF77 do zegara, który ma PCF8583. I tu moje pytanie do Was. Czy...
Sub Odczytaj_pcf8583 Dzien = Makedec(dzien) Miesiac = Makedec(miesiac) H = Makedec(h) M = Makedec(m) S = Makedec(s) I2cstart I2cwbyte &HA0 I2cwbyte 2 I2cstart I2cwbyte &HA1 I2crbyte S , Ack I2crbyte M , Ack I2crbyte H , Ack I2crbyte Dzien , Ack I2crbyte Miesiac , Nack I2cstop I2cstart I2cwbyte &HA0 I2cwbyte 100...
Swego czasu w nocie katalogowej chyba pcf8583 był nawet zapis przy bitach reserved coś w stylu: Reserved for factory tests - do not use, always write as 0
Tu masz kody źródłowe do interfejsu I2C, może tam coś znajdziesz. Pozdrawiam. http://www.programmersheaven.com/downloa... http://www.phanderson.com/jkmicro/8583_1... Układ PCF8583 jest widoczny pod adresem 80D (50H) magistrali I2C. Ponieważ najmłodszy bit adresu I2C określa typ operacji (odczyt/zapis) wiec układ PCF8583 jest “widoczny”...
NIE wolno robić czegoś takiego żeby zmienna co chwile była zapisywana do EEPROM-u dlatego że on ma określoną ilość zapisów minimum 100.000 / + . Ja bym si polecił jakiś SRam na i2C albo SPI z podtrzymaniem bateryjnym może być nawet zegar RTC PCF8583 . Co do karty i komunikacji z PC tu [url=http://www.dharmanitech.com/2009/01...
Nie wiem czy to istotne ale w moim kodzie zapis czasu do PCF-a realizowany jest po odczycie wcześniej ustawionych wartości początkowych naliczania czasu.
Witam, mam problem z obsługą PCF8583 pod atmege16. Podczas proby zaadresowania zegara do zapisu (0xa0), nie dostaje bitu potwierdzenia.
Faktycznie podlaczenie rezystorkow oraz poprawienie schematu pomoglo. Udaje mi sie wpisac dane i je prawidlowo odczytac. Niestety odczytuje caly czas to samo... tak jakby zegar byl wylaczony... co zrobic? EDIT: I2C_Start(); // inicjalizacja zegara I2C_Send(0xA0); // adres PCF8583 do zapisu I2C_Send(0x00); // adres w RAM I2C_Send(0x00); czy I2C_Send(0x80);...
Witam. Dzieki za odpowiedź problem jest jednak taki, że wiedzieć to jedno, a użyć to drugie. Dlatego zapytałem się wcześniej, czy moje skrawki programu mają prawo zadziałać idąc za moim tokiem rozumowania. Miałbym więc jeszcze prośbę o trochę wyrozumiałości i wrzucenie kawałka programu z drobnym tłumaczeniem..? Za wszelką pomoc będę wdzięczny. Pozdrawiam
Ja osobiście uzywam BACOM AVR najbanalniejsza obsługa wszystkiego na I2c. pcf8583 najpierw sie wpisuje adres zapisu 160 potem adres rejestru a potem dopiero dane... I2cstert I2cwbyte 160 I2cwbyte 0 'konfiguracja I2cwbyte &b00001110 http://katalogi.iele.polsl.gliwice.pl/da... to ci rozwieje wszelkie wątpliwości :wink:
Bardzo Ci dziękuję za przejrzyste wyjaśnienie jak czytać te rysunki i wreszcie wszystko jasne :) Co do PCF8583, to: Dla pinu A0 podciągniętego do VCC ZAPIS - 162 ODCZYT - 163 Dla pinu A0 podciągniętego do GND ZAPIS - 160 ODCZYT - 161
temat jest o zupie a wy o d... Pomijając wywody natury ogólnej masz kolego do wyboru wewnętrzną pamięć RAM od pcf-a i to nie małą bo 240 bajtów albo stałą od eeproma. Jedno i drugie jest dobre bo pcf ma podtrzymywanie bateryjne (chyba go uzywasz) ale kiedy bateria padnie to zapisy znikną więc pewniejsze jest umieszczenie tych informacji w pamięci eeprom....
Powtórna inicjalizacja (sygnał START) wymagany jest tylko w momencie w którym Master zapisuje do układu adres rejestru z którego następnie chce odczytać wartość (FIG. 17 z dokumentacji). W przykładzie z pierwszego postu powtórna inicjalizacja podyktowana była "cechą" układów na I2C - automatyczna inkrementacja licznika rejestru. Jeśli wpisujesz wartość...
Sprawdziłem dla pewności jeszcze raz, char pomoc Ponieważ Twoja funkcja void konwert2(char tekst nie dodaje znaku '\0' w tablicy tekst . Elementy Twojej tablicy to tekst i tekst (nie mylić z '\0'), a jaka będzie wartość komórki, która znajduje się za tablicą to czysty przypadek. Z kolei instrukcja LCD_WriteText(pomoc); będzie wyświetlać kolejne komórki...
Klas tu nie uświadczysz. Najpierw zapisujesz do pcfa jakieś wartości a potem odczytujesz te same. Wklej cały program.
a czy czasem nie ma bity odpowiadającego za maskowanie dni tygodnia przy odczycie?? ;) NIe rozumeim jednogo po zapisie przy odczycie masz 0, a co miałeś przed zapisem?
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...
Sprawdź dokładnie adresowanie - odczyt i zapis. Problem na pewno leży gdzieś tam.
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ę...
Chciałem jeszcze raz na początek uruchomić PCF8583. Problem mam przy zapisie adresu rejestru (0x01), do którego chcę zapisać setne części sekund (po prostu 0 chcę wpisać). Program czeka w pętli while na ustawienie flagi TWINT. Próbowałem zapis od rejestu 0x02. Zawsze to samo. Próbowałem odczytać wartości tylko z układu PCF8583. Także program "zawiesza...
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...
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)...
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
Wiem, ze to mozliwe chocby z ukladem PCF8583, chodzilo mi o konkretny model RTC4513!
Witam wszystkich. Kostka to PCF8583, która wg noty nie ma "swojego" zapisu roku. - Od kiedy???!!! Jest oczywiste że ma! Rejestr 05 zawiera Datę, a w niej także rok Trzeba do niego najpierw wpisac aktualny rok i datę, inaczej będzie zaczynał od defaultowej wartości. http://obrazki.elektroda.pl/6921021300_1... Poszukaj w necie: -> Mirley...
Pomysł tmf jest bardzo dobry, tylko z jakiegoś powodu nie potrafisz tego dostrzec. Zamiast pcf'a zapakuj tam tiny z baterią (czy większym kondensatorem) i komunikuj się z nim przez SPI albo I2C, albo jak tam chcesz. Dane zapisywane będą ważne, jeżeli dostanie od mastera kompletną paczkę: np. (long int NumerZapisu, long int CzasPracy, int CRC). Nie...
Witam, W odpowiedzi na PW i powyższy post przejrzałem jeszcze raz kod programu w BASCOM i znalazłem błąd w procedurze zapisu daty do PCF. Zamieszczam poprawiony kod, trzeba dopisać jedną linijkę kodu. Proszę i informację zwrotną czy pomogło. Pozdrawiam JarekC PS. gratuluję uruchomienia układu. [syntax=basic4gl]'----------------------...
Tak, na 100% ( zerknij na fusebity ). Tak jak napisałem wcześniej dodanie zewnętrznego epromu 24c02 robi problem - pamięci podmieniałem i dalej to samo http://obrazki.elektroda.pl/6675331400_1... Dodano po 5 może źle zainicjowałem I²C ? ale przecież PCF8583 chodzi, a adresy zapisu i odczytu z epromu są wg. mnie dobrze
Pomogło - program nie jest uwięziony w pętli, komunikuje się z PCF i wyświetla poprawne informacje - na razie tylko sekundy, mam nadzieję, że z dalszą rozbudową nie będzie problemów, jak jednak się pojawią zwrócę się o pomoc. Dzięki wszystkim za wszystko i pozdrawiam :).... kod po przeróbkach: ldi r21, 160 ' adres zapisu PCF8583 (A0 = 0) ldi r22, 161...
Siemka! A ja ten problem rozwiązałem inaczej. Generalnie to po co Ci pierwsza połowa 4 cyfrowej wartości roku. Wpisz jako stałą w programie 20 i tyle. Do dyspozycji zostanie Ci 99 lat. I teraz tak. W PCF8583 Możesz zapisać w rejestrze roku do 4 lat. Zatem robisz dzielenie całkowite aktualnego roku przez 4 i tą wartość zapisujesz w wolnej komórce pamięci...
Witam Mam dziwny problem z działaniem zegara PCF 8583 na magistrali I2C. Używam procedur do obsługi I2C ze strony: http://cyna.barlinek.biz/index.php?stron... Skleciłem na własne potrzeby procedurkę do odczytywania danych z zegara (poniżej). Problem polega na tym iż pierwsze wywołanie procedury działa ok ale kolejne już nie działa, procedurka I2C_Start...
... lecz nie moge wyslac danych(godziny,daty itp) do pamieci pcfa. Skoro procedura zapisu do PCF-a nie jest wykonywana, to nic dziwnego :idea: czekam na sugestie. Nie nazywaj etykiet, podobnie brzmiącymi nazwami (Settime,Senttime).
Podpowiem jedną rzecz. :) Nie definiuj nowych zmienny i nie pisz nowych funkcji żeby zapisać/odczytać rejestry alarmu, to jest gotowe. Przyglądnij się fragmentom pliku Config_PCF8583.bas : Config_PCF8583.bas jest: _clock_alarm , podczas kompilacji zmienne do obsługi alarmu zostaną dołączone. Teraz przykład jak odczytać jeden bajt Alarm Control Register...
W skrócie powiem tak: R E W E L A C J A !!! oby więcej takich ,,Nauczycieli" !!! :D Z góry dziękuję za rewelacyjne wytłumaczenie całej obsługi zapisu i odczytu PCF8583 no i oczywiście czekam(y) na dalsze informacje w sprawie ustawienia alarmów - dla mnie osobiście rok w pcf-ie był największym problemem :) ale po takim szczegółowym wyjaśnieniu już nie...
Co ciekawe, błąd TWI pojawia się tylko przy zapisie do AT24c1024, co ciekawsze - po wystąpieniu błędu i zresetowaniu TWI w atmedze pamięć ta dalej trwa w "zawieszeniu", wystarczy jednak odczytać inny układ na magistrali (np. odczytać czas z PCF8583) i pamięć wraca do życia. Prawdopodobnie robi to warunek STOP.
Witam Na początek to //Porty: PC0(SCL) PC1(SDA) -> wejścia TWI DDRC =0b11111110; PORTC =0b11111101; skoro porty PC0(SCL) PC1(SDA) to wejścia TWI , ja bym je ustawił tak //Porty: PC0(SCL) PC1(SDA) -> wejścia TWI // 1 -> wyjście // 0 -> wejście DDRC =0b11111100; // 1 -> z podciągnięciem do VCC (pull-up) // 0 ->...
Witaj Nie musisz zaprzęgać Timera, jeśli Masz zegar PCF8583. Ja zrobiłbym to następująco: 1. Zapis CZASU PRACY, oraz CZASU PRZERWY do pamięci EEPROM ATmegi 2. Napisanie krótkiego podprogramu realizującego porównanie CZASU PRACY, oraz CZASU PRZERWY 3. Gdy podprogram wykryje takie same wartości CZASÓW (zegara i nastawionych) wysyła np. impuls na wyznaczony...
co oznaczają te zapisy: uint16_t days:6; uint16_t yr:2; uint16_t month:5; uint16_t weekday:3; tzn chodzi mi o te dwukropki a po nich jakaś liczba - to chyba nie jest przypisanie wartosci? Liczba po dwukropku oznacza ilość bitów, które zajmuje zmienna. np.:uint16_t days:6; uint16_t yr:2; oznacza, że days zajmuje 6 a yr zajmuje 2 bity...
W dataszitach do AVRów ze sprzętowym TWI są przykłady podstawowych operacji (zapis, odczyt) w asemblerze .
Pierwsze co rzuciło mi się w oczy po spojrzeniu do datasheet do adresy do zapisu/odczytu. W kodzie masz odczyt-A1, i zapis- A0. PCF8593T korzysta z adresów: odczyt-A3, zapis A2.
zrobilem sobie taki zegarek RTC na I2C i LCD 16x2 na zestawie uruchomieniowym zl2avr jednak nie wiem jak sie zabrac za podlączenie LCD pod I2C myslalem zeby uzyc pcf8574 tylko nie wiem jak podlaczyc LCD do tego ukladu i czy nie trzema jakiejs dodatkowej biblioteki ?? co by to obslugiwala ?? oto moj programik jaki mam do tej pory bez LCD na I2C : $regfile...
http://obrazki.elektroda.pl/7884479900_1... Czy może ma ktoś pomysł na zegar RTC PCF8583, gdyż walczę z programem od kilku dni i nie mogę sobie z nim poradzić. Zrobiłem sobie zegarek na w.w. układzie i zamiast czasu wyświetla mi same znaki zapytania. Temperatura jest wyświetlana poprawnie. PCF działa poprawnie gdyż generuje na wyjściu...
... Problem błahy, ale rozkładam ręce, pewnie zapomniałem o jakiejś oczywistej rzeczy ... Witam Tak, problem jest błahy i wynika ze specyficznego sposobu konfigurowania portów w bascom-ie. O ile instrukcje: Config Pinc.2 = Output Config Portc.2 = Output dają równoważne wyniki (chociaż poprawny zapis w/g helpa to PINx.y dla konfiguracji pojedynczego...
Obstawiam na konflikt adresów. Pamięci eeprom mają tak, że każde 256 bajtów zajmuje jeden adres I2C. 24c04 ma 512 bajtów i zajmuje 2 pozycje (nie mówię tutaj o adresach na zapis/odczyt). Jeśli pierwszy adres to 160/161, drugim będzie 162/163. I właśnie ten drugi wchodzi w konflikt z zegarkiem. Wszystkie operacje wykonywane są równocześnie na zegarku...
Witam. Koledzy czy można podłączyć zegar PCF8583 do portu SPI procesora który obsługuje na tym porcie kartę pamięci? Jeśli się da to czy wystarczy na czas odczytu lub zapisu PCF-a konfigurować porty SCL SDA a później obsługiwać kartę pamięci. Czy trzeba ją będzie inicjować za każdym razem?
Żeby zrobić menu - potrzebujesz dodać kolejne funkcje obsługi odczytu i wyświetlania temperatury. Obsługę wyświetlania i poruszania się po menu itd. Ponadto istniejącą procedure obsługi PCF musisz rozszerzyć o procedury odczytu i zapisu daty oraz obsługę budzika. Kolejna sprawa to wprowadzenie przerwań. Tzn. Ustawiasz w PCF odpoowiednią datę budzika...
Bardzo fajny projekt, Super Ci to wszystko wyszło. Ogólnie od jakiegoś czasu jestem wielkim fanem SMD, Większość układów tańsza, dużo mniej miejsca potrzeba, brak wiercenia tylu otworów... U Ciebie jest sporo miejsca więc jest ok. Dlaczego obsługę dnia, miesiąca, roku i dnia tygodnia zlecasz EEPROMowi? On ma bardzo mało cykli zapisu/odczytu a PCF8583...
zapis niektorych bajtow pamieci ustawienia timerow itp powoduje odchylki w dzialaniu tylko niepamietam czy do przodu czy do tylu
dziel przez 10 przesuń 4 w lewo i dodaj wynik modulo 10
Zmienna month nie zmienia swojej wartosci wtedy gdy powinna czyli np po uplywie 31 dni. Co dziwne jak mam godzine 23:59 i dojdzie do 0:0 to w zmiennej month mam tyle co wczesniej zaś w miejscu gdzie powinna byc slowna nazwa miesiaca sa "krzaki". Dodano po 18 Czyli wystarczy jak zrobię coś takiego: Dim B1 As Bit Set B1.3 'A potem: I2cstart I2cwbyte...
Witam. Co prawda nie korzystałem nigdy akurat z PCF8563 (nie przeszkadzają mi "nierozdzielone dane" ;) ), ale po pobieżnym przejrzeniu jego dokumentacji proponował bym Ci zamaskować nieużywane bity poszczególnych rejestrów po ich odczytaniu. Nie wiem jak dla Ciebie, ale dla mnie znak "x" w dokumentacji na pozycji któregoś bitu oznacza stan nieokreślony,...
Witam. Mam problem z czujką LM75. Otóż odczyt rejestrów układu przebiega pomyślnie, jednak zapis nie daje żadnych rezultatów. Korzystam z funkcji, które napisałem kiedyś wg noty Atmela. Do tej pory używałem ich przy komunikacji z PCF8583 i PCF8563. Przy tych układach wszystko działało (odczyt i zapis). Niestety LM75 daje się odczytać ale na zapis nie...
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,...
Wykonuję Kolejno czynności: -Inicjuję I2C (I2C_Init) - Wysyłam START transmisji i adres układu z 1 na końcu czyli zapis (I2C_SendStartAndSelect) - Wysyłam adres rejestru do odczytu (I2C_SendByte) - Wysyłam START transmisji i adres układu z 0 na końcu czyli odczyt (I2C_SendStartAndSelect) - Odczytuję dane z rejestru I2C_ReceivData_NACK(); Zapis to 0...
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ę...
Witam. Mam problem z zegarem na wyświetlaczach 7-segmentowych. Minuty po 09 wyświetla 16 zamiast 10, sekundy tak samo. Zawsze tak się dzieje, więc musi to być błąd w programie, ale ja już się poddałem, co może być nie tak. Config PortA = Output PortA = &HFF Config Portd = Output Portd = &Hff Config Portb = Output config portc.0 = output config...
Wyżej już cały kod działający OK Dzięki serdeczne za odpowiedź uporałem się już z tym pozostało wykrywanie zera i regulacja obrotów silnika tutaj jestem zielony jak zrobić regulację obrotów :cry: [syntax=basic4gl]I2cstart 'inicjacja magistrali I2C I2cwbyte 162 'podaje adres dla zapisu PCF8583 I2cwbyte 2 'wybieram drugi rejestr(sekundy) I2cstart 'powtarzam...
Popatrz co się dzieje: zamaskować 3 najstarsze bity w zmiennej, czyli mc_j = buffer_t[4] & 0x1F; //11001000 x 00011111 = 00001000 , później tą wartość z BCD na kod dziesiętny i masz 08. Chcesz dostać dzień tygodnia - powinieneś przesunąć i zamaskować zmienną, czyli: zmienna = (buffer_t[4] >> 5) & 0x07; //rotacja...
Skoro chciałeś wyciąć tylko zapisy do eeprom to po co zmieniasz inne rzeczy np: I2C_read_buf( PCF8583_ADDR, 0x01, 4, bufor ); Dodano po 2 Może spróbuj najpierw odczytać poprawnie czas nie usuwając nic z kodu
Witam Na internecie znajdziesz wiele programów obsługujących ten RTC. Jak sobie dobrze przypominam to jest między innymi na stronie EP (w bascomie). Przed zapisem do RTC trzeba wartość najpierw przetworzyć (przekonwertować) na inny format i dopiero wtedy zapisać. przy odczycie sytuacja jest analogiczna.
PCF8583_write(0x00,00000100); //Control status register PCF8583_write(0x08,11001010); //Alarm control register Gcc? Jeśli tak to liczby binarne maja inny format. 00000100 -> 0b00000100 11001010 -> 0b11001010 Dodano po 1 A, jednak znasz ten format zapisu EICRB = 0b00000010; //wywołanie zboczem opadającym EIMSK = 0b00010000; //aktywacja INT4
Mógłbyś przytoczyć ten fragment kodu - odczyt i zapis tego układu RTC ? Co do dokładności - sam zrobiłem na układzie PCF8583 i pomimo regulowania dokładności kwarcu własnie coś koło minuty spóźnia mi sie na miesiąc ... Po za tym te "dallasy" są prawie darmo do zdobycia po rozszabrowaniu starych płyt głównych od PC :D no i baterie mają w sobie a to oszczędość...
Po kilku kolejnych dniach spędzonych przy sterowniku udało mi się okiełznać wyświetlacz oraz "rozbudować" sterownik o zegar zrobiony na PCF8583. Podczas pisania programu napotkałem na mały problem, mianowicie po zwarciu pinu d.6 do masy program powinien rozpoznać stan niski i przejść do podprogramu M1.1, niestety jednak tak się niedzieje, gdy zaprogramuję,...
Wiem, że PCF8583 nie ma rejestru roku - przeczytałem jego dokumentację. Wiem, że nie ma dedykowanego rejestru dnia tygodnia. Oba te problemy uwzględniłem w kodzie, co pokazałem w zamieszczonym źródle.Poniżej cytuję sam siebie: przy odczycie: Year = Day Shift Year , Right , 6 Year = Makedec(year) Year = Year + Yearbase Day = Day And &B00111111...
Mam jeszcze pytanie jak zapisać do tego scalaka dane jak cokolwiek chce zapisać to zapisuje się co innego , czy ta procegura zapisu jest poprawna i2c_init(); i2c_start_wait(0xA0+I2C_WRITE); i2c_write(h); i2c_rep_start(0xA0+I2C_WRITE); i2c_write(i); i2c_stop();
Ok, po pierwsze czy sam pisałeś obsługę I2C ? Czy są to jakieś gotowce? Dorzuć deklaracje nazw pinów zegar dane itd (tak na wszelki wypadek). W procedurze "zapis" masz oczekiwanie na potwierdzenie od odbiornika: clr zegar djnz r1,czolem setb dane acall del jb dane,$ ;<---------- setb zegar Z tego co rozumiem dokumentację,powinieneś czekać przy wysokiem...
W nocie http://www.nxp.com/acrobat_download/data... na stronie 14 masz opis adresowania tego ukłądu. Wynika ze adres zapisu to 162 a odczytu 163. Tylko to musisz zmienić w swoim kodzie. Nie bede wklejał poprawionego kodu bo chyba niewarto Pozdrawiam
Jesli tyle piszesz do eeprom-u to zamien 24c04 na pcf8583 (zegar) możesz nie lutowac kwarcu i tez bedzie chodził a do podtrzymania danych zastosuj 3V płaska pastylkę. Będziesz mógł pisać do woli.
Witam. Właśnie stawiam swoje pierwsze kroki z pcfem i analizowałem Twój kod. Wydaje mi się że na nóżkę A0 masz podaną 1 logiczną, w związku z czym adres do zapisu jest 162 a do odczytu 163. W swoim kodzie zmień 160 na 162 dla zapisu i 161 na 163 dla odczytu. Po tych modyfikacjach program chodzi poprawnie z wyjątkiem wyświetlania danych na wyświetlaczu.
Witam. Patrz komentarze które dodałem do Twojego listingu: $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.3 = Input 'pinb.1 jako wejscie Config Pinb.2 = Input 'pinb.2 jako wejscie Config Lcd = 16 * 2 'jaki zostal podlaczony wyswietlacz LCD Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4...
Częsty zapis do pamięci EEPROM w końcu spowoduje jej uszkodzenie, chyba że wystarczyłoby Ci 240 komórek RAM-u jakie zawiera zegar PCF8583. Może lepiej by było wykorzystać sprzętowy RS232 a dane do wymiany przechowywać w RAM mikrokontrolerów?
jednak problem jest nadal :( czyli teraz wygląda to tak: teraz w ogóle nie mogę programowo zresetować tego PCF'a poprzez wpisanie wartości 0 do contrlo register pod adresem 00h lub za pomocą sekwencji kolegi redart. oczywiście, w tym czasie zegarek nie tyka ale mogę po I2C normalnie z niego odczytywać i zapisywać wartości do pamięci RAM i rejestrów....
1. sygnał dzwonka domofonu jest modulowany i jak wiecie trwa pewien czas - ma ok.12V amplitudy - jaki układ wejściowy zastosować i czy najlepiej programowo blokować "nowe zgłoszenia" przez ok.30 sekund? np mostek prostowniczy z elektrolitem dalej rezystor rozładowujący do masy i np jakaś bramka Schmitta (4093) z ogranicznikiem napięcia wejściowego...
Witam! Mój projekt ma za zadznie sterować komorą chłodniczą z jednoczesnym pomiarem i rejestracją temperatury. Temperatura ma być mierzona w 10 punktach więc wybrałem czujniki dallasa 18b20, zegar czasu rzeczywistego z kalendarzem PCF8583. Zastanawiam się nad atmega a coś z rodziny 8051. Oraz pamięć conajmniej 64kB, powinna wystarczyć na zapis temperatury...
Witam. Jestem w trakcie kończenia pisania oprogramowania do zegarka z podświetlaniem RGB. Na razie mam takie funkcje: - 3 przyciskowa klawiatura. - Nastawianie daty i czasu i zapis/odczyt w/z PCF8583; - Wyświetlanie temperatury wraz z tendencją spadkową lub wzrostową przy pomocy strzałek; - Regulacja poprzez PWM sprzętowy w Atmedze8 jasnością wyświetlacza;...
ja niedawno odpaliłem rtc na twi i działa świetnie na stronie radzio.dxp.pl są podane procedury do twi sprawdzałem je i działają nie wiem czy wiesz ale PCF w przeciwieństwie do eeprom adres+1 to odczyt więc jeśli masz adres A2 to do niego zapisujesz a z pod A3 czytasz
Pewnie od tego, że na początku programu masz zapisywanie tej godziny do PCF, więc jak wyłączysz i włączysz zasilanie to procek wpisuje właśnie te dane do zegara.
Nie bardzo rozumiem FM24c04 to eeprom czy Fram http://www.alldatasheet.com/datasheet-pd... z pdf wynika że eeprom o 1000 000 cyklach zapisu :(. Zależy mi na ramie na I2c nie chcę dawać pcf8583 bo mi zegarem nie potrzebny tylko ram a podana ilość cykli to mi się po 1/2 roku skończy. Znalazłem fram w tme FM259040 szeregowy ale...
Witam Twój program z całą pewnością nie zadziała z PCF8583, bo nie dla niego został napisany. Po pierwsze (jak słusznie zauważył Kolega karlos79 ) zły adres układu - PCF ma &HA0 do zapisu i &HA1 do odczytu. Po drugie jego rejestry daty i czasu nie zgadzają się z tymi które Ty odczytujesz. Natomiast sądząc po adresie układu i rozkładzie rejestrów, program...
Chciałbym skorzystać z tego projektu ale coś nie jest tak z programem. Program zegarka ogólnie działa; wyświetlanie, reakcja na przycisk i możliwość ustawienia godziny/minut, auto zapis ustawień do PCF. Jest problem, gdy AT89C2051 zostanie zresetowany. Zostaje zresetowany także ustawiony czas w PCFe, do wartości początkowych. Jest to niezależne od podtrzymania...
Witam Napisałem program w Bascomie - i w kilku miejscach mam odwołanie do funkcji gettime. Układ pracuje na Atmega1280. Zegar RTC skonfigurowany prawidłowo: [syntax=basic4gl]Config Sda = Portd.1 Config Scl = Portd.0 I2cinit [/syntax] układ podpięty to I2C prawidłowo(zgodnie z dokumentacją) [syntax=basic4gl]Sub Gettime I2cstart 'inicjalizacja magistrali...
powyższą procedurę pisałem sam, jednak obsługę magistrali I2C zapożyczyłem z sieci. Korzystam jeszcze z zegara PCF8583 i komunikuję się z nim za pomocą tej samej biblioteki I2C - nie ma żadnych problemów z zegarkiem. Odnośnie tych adresów odczyt/zapis to w dokumentacji natknąłem się na coś takiego: http://obrazki.elektroda.net/95_12515451...
PCF8583 ma we srodku 256 bajtow RAM, z czego do wlasnych celow mozna uzywac wyzsze 240 bajtow. Prog podtrzymania wynosi ok 1V, wiec na pojedynczym paluchu pochodzi ladnych kilka lat. Pozdrawiam, Yego
zapis pamięci pcf8583 pcf8583 zapis czasu bascom pcf8583 zapis
rozlać bateria telefon domofon bticino kluczyk passat przycisk otwierać
myphone hammer radio kasety zmieniarka
Regulacja gaźnika w pilarce Faworyt RG 5300 18 Stężenie roztworu Na₂CO₃ do wywoływania PCB z folią UV