Nie za bardzo rozumiem o co Ci chodzi. Po zakonczonej transmisji SDA i SCL musza być HIGH inaczej magistrala bedzie uwazana za zajętą. Jezeli chodzi ci o to kiedy podajemy tam sygnal zegara to przed wyslaniem kolejnego bitu musimy zrobić ja low aby ustawic nastepny bit na SDA i za chwile zrobic high. - masz to na rysnku ponizej. http://obrazki.elektroda.pl/1347433500_1...
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ść...
I weź tutaj pomóż człowiekowi, skoro on sam sobie nie chce pomóc. Kobieto ogarnij się. Czy Ty te bajty RAMu to wykupujesz za funty, czy jak, że je tak oszczędzasz i bronisz się przed ich dołożeniem? Skoro rezerwujesz na string "sek" 2 bajty RAM, a funkcja itoa wklepuje tam 3 bajty, to jak myślisz, co się dzieje z tym 3-cim bajtem?
Jak zapisać zmienną która ma wartość np: 0 do 234524 do Ramu zegarka PCF8583 czyli podział to na bajty i czy muszę konwertować do BCD, potem odczytać odjąć 1 i znowu zapisać i tak aż do zera . Robie to na 89c2051 + PCF8583 +podtrzymanie baterii.
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...
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...
A zegar RTC w tym projekcie jest juz użyty. Jaki to RTC? Archaiczne RTC (np PCF8573) nie miały (prawie) dodatkowej pamięci. Popularny PCF8583 ma blisko 256 bajtów. Nawet archaiczny RTC ma rejestry alarmu, które mogą służyć do przechowywania zmiennych. Jak wyliczyłeś te 10..20 słów dla zapamiętania czasu?
Ale szybkie postępy! Dwa programy obsługi PID są do ściągnięcia z MCS Electronics. PCF8583 może też generować prostokąt 1Hz-co można wykorzystać do "odpytywania" o czas w pętli Do...Loop lub w przerwaniach. PCF8583 ma też kilka? dziesiąt bajtów RAM-które można wykorzystać do nastaw. Zwłaszcza przy zasilaniu z baterii przy wyłączonym zasilaniu układu.
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...
Po pierwsze, jesli jeszcze nie masz, to pobierz sobie dokumentację pdf, tego scalaka, na przykład stąd: http://katalogi.iele.polsl.gliwice.pl Jeśli dobrze pamiętam, to w PCF8583, trzeba skonfigurować bajt control/status (adres 00H), ustawiając bit 2, co odblokuje rejestr kontrolny alarmu (adres 08H). W tym rejestrze trzeba ustawić odpowiednie bity,...
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....
No tak ale producent chyba o tym pomyślał i jakoś to rozwiązał. Hmmm tylko jak dla mnie starczą dwa bajty ale z kąd to wyciągnąć
Zapis rób przy wyjściu z menu, odczyt przed pętlą główną, a bieżące zmiany od razu podczas pracy menu ładuj do PWM - nie ma sensu robić czegoś takiego: Nastawa->EEPROM; EEPROM->PWM. Zamiast tego: Nastawa->PWM i zaraz potem Nastawa->EEPROM; Pamięci AT24CXX zorganizowane są bajtami - w jednej komórce zatem przechowasz 1 bajt.
RTC (PCF8583) na adresie 162/163 i eeprom 24c16 na 160/161 to nie ma sensu przecież. Pinów A0 A1 i A2 24c16 w eepromie nie można samemu ustawiac, bo układ używa ich do przełączania sobie storn pamięci, poza tym ten eeprom ma osiem stron pamieci po 256 bajtów. Wynika z tego że zajmuje wtedy: 160/161, 162/163 , 164/165 itd. do 174/175 Czyli adres RTC...
a nie łatwiej będzie podłączyć alternatywne zasilanie do procesora? bateria 9V + 78l05. a do komparatora podać 2 napięcia: z podzielnika bezpośrednio z baterii i z podzielnika ze stabilizatora, jeśli napięcie na baterii spadnie do krytycznej wartości to wtedy zapisać dane do zewnętrznego eeproma dowolnego typu, i uśpić układu (co by oznaczało że niema...
dziękuję koledze Bdeath za przykład kodu. Pomogło! Niestety pojawił się kolejny problem... odczytuję kolejne bajty, zamieniam z bcd na dec, tylko że, sekundy są zliczane do...90....
A widzisz, teraz pojmuje, o bitach i ogólnie to wiem, tylko nie rozumiałem o tym włączaniu pojedynczych bitów jak nadaje sie wartości całemu bajtowi. Jeszcze raz dzięki za wytłumaczenie, muszę jeszcze sporo poczytać. Pozdrawiam
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...
Tak na szybko mam takie rozwiązanie: Dim Go_s As String * 2 , Mi_s As String * 2 , Se_s As String * 2 Go_s = Str(godzina) Mi_s = Str(minuta) Se_s = Str(sekunda) Lcd Format(go_s , "00") ; ":" ; Format(mi_s , "00") ; ":" ; Format(se_s , "00") Wartości...
Wilku: Tu masz krotka procedurke odczytu: i2cstart i2cwbyte 162 i2cwbyte 5 i2cstart i2cwbyte 163 i2crbyte zmienna1 , ack i2crbyte zmienna2 , nack i2cstop I teraz w calym zapisanym bajcie w zmiennej "zmienna1" masz informacje o dacie, bity 0-5 (kod BCD) i roku - ostatnie dwa bity (kod binarny) - patrz PDF dla pcf8583 Musisz rozdzielic ten bajt na dwie...
zumek -> no właśnie, więc skoro generuje taki sam kod dla jednego i drugiego przypadku - to czy wg ciebie to normalne, że Slave w postaci ATmegi w odpowiedzi podaje po repstarcie ten pierwszy dodatkowy bajt ze swoim adresem??? - tak się składa, że akurat ten tryb nie jest dokładnie rozpisany w notach pdf i dlatego tak mnie to nurtuje. Bo przecież gdy...
Witam więc sprawa sie wyjaśniła dzięki koledze jarekgol. Mój bląd polegał na tym ze w po odczycie ostanie go bajtu dawałem sygnał ACK, a jest on nie potrzebny
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...
olekewaagata a napisz jeszcze trochę takich ciekawostek np jak ustawić/ odczytać rok, bo jakoś nie idzie mi rozgryzienie tego??? wiem np. że bajt 5 to rok/data ale co z tym zrobić?? bajt 6 wyjaśniłeś jeszcze nie sprawdzałęm ale zakładam że już sobie poradzę
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, dopracowywanie softu napisanego w Bascomie - zajmuje 8190 bajtów. To dlatego osobny układ do sterowania ledami RGB :) PWM na timerze przy częstotliwości rzędu 100Hz nie zająłby Ci wiele czasu procesora. Z początku chciałem przechowywać te dane w pamięci EEPROM ale liczyło by się to z szybkim "uszkodzeniem" tej pamięci Masz jeszcze do dyspozycji...
Oprócz samego RTC masz w pcf8583 jeszcze 240 (o ile sie nie mylę) bajtów pamięci. Wykorzystaj to. A w jaki sposób - a w jaki chcesz - coś wymyśl - można to zrobić na 100 sposobów, np. 1 komórkę pamięci przeznacz na aktualny rok (licząc np. od roku 2000), drugą na poprzedni odczytany rok z pcf8583. Porównując wartość komórki pamięci zawierającej ten...
Projektuję urządzenie które musi przechować 200 bajtów danych przez minimum 15 lat przy jak najmniejszych gabarytach. Zastanawiam się nad PCF8583 i baterią CR2032 ( 225mAh ) Z noty PCF8583 wynika że w trybie "data retention" pobiera 2uA przy VCC 1.0V czyli przy baterii 3V to będzie 6uA. To wystarczy jedynie na około 5 lat. Zastosowanie baterii CR2450...
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...
1) Sprawdź czy jest właściwe napięcie zasilania (2.5-6V). Jeśli napięcie na scalaku jest wyższe niż 6V wtedy będzie taki efekt jak u Ciebie. 2) Sprawdź czy działa oscylator. 3) Upewnij się, że w rejestrze 'control/status' (bajt 0 w pamięci) bity b3, b4, b5, b6, b7 są wyzerowane.
W tym układzie zmienne H i M są w kodzie BCD czyli jeśli np. jest 12 to przechowywane jest w postaci 0001 0010. Nie musisz nic robić poza wyłuskaniem połówki bajtu. Makebcd poza tym zamienia właśnie z postaci 0000 1010 (BIN) = 12(DEC) na to co powyżej.
Przepraszam moje nie dopatrzenie , co do Twojego kodu ,wkleje swoj do obsługi TWi działający ponieważ widzę pewne róznice w kodach : void TWI_INIT(void) { TWSR = 0; /* no prescaler */ TWBR = ((16000000/F_TWI)-16)/2; /* must be > 10 for stable operation */ } // procedura transmisji sygnału START void twistart(void)...
Przykład masz we własnym kodzie. Z tą różnicą, że czytasz nie z rejestru 2 tylko 6 i czytasz 1 bajt, a nie 3. Do przesunięcia używasz [url=http://www.avrhelp.mcselec.com/inde...
1. Jeżeli to ma być typowa sygnalizacja świetlna - czyli sekwencyjne przełączanie świateł to po co RTC ??? Wystarczy zwykłe przerwanie od Timer'a ! 2. Jeżeli jednak ma być RTC to jakie "impulsy" kolega chce zliczać ??? - w programie to raczej w takim wypadku trzeba odczytywać non-stop RTC i czekać na odpowiednią godzinę:minutę:sekundę......etc. 3. W...
void PCF8583::get_time(){... Wire.beginTransmission(address); Wire.write(0xC0); // stop counting, don't mask Wire.endTransmission(); Wire.beginTransmission(address); Wire.write(0x02); Wire.endTransmission(); Wire.requestFrom(address, 5); second = bcd_to_byte(Wire.read())...
:arrow: Bęben, polecenie wait w programie napędzanym przez Timer? Po odebraniu ostatniego bajtu informacji master nie wystawia znacznika ACK tylko NACK. Pomijam kwestie sterowania wyświetlaczy, którą trzeba spokojnie zrobić od nowa... najlepiej na spokojnie na kartce papieru ;).
Czy ja mam felerne układy czy nie jest prawdą że z pamięci I2C można czytać do woli?? Pozdrawiam RUBIK Według noty 24c04 ATMEL ma ograniczoną liczbę cykli zapisu(kasowania) do 1miliona.Ilośc cykli odczytu jest jak rozumiem nieograniczona.Jeżeli u Ciebie nastąpiło uszkodzenie po 100k(100000 cykli?) zapisu to i tak za szybko.Zastosowałem pamięć eeprom(24C64)...
Zaczynam temat z TWI w avr i już na początku napotkałem problemy, poniższy program ma za zadanie ustawić godzinę na PCF8583 oraz odczytywać ja co przerwanie zewnętrzne INT0 z układu PCF8583 i wypisywać ja na wyświetlaczu LCD. Funkcje napisałem na podstawie książki Mirosława Kardasia. Mam pytanie czy do tego układu PCF8583 konieczne jest podłączenie...
program napisany jest w asmemblerze według takiego schematu jak ty dałeś. wiem tylko jedno. program odczytuje tylko jeden bajt (pierwszy). czyli jak ty masz adres komurki =2 to mi odczyta sekundy- reszta będzie=0, jesli adres będzie równy 3 to odczyta minuty, następne bedą równe zero....
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...
Jeszcze tańszy od PCFa jest MCP79410 firmy Microchip. To jest też RTC i ma 64 bajty wewnętrznego RAMu. Zasilanie 1,8÷5,5V Podtrzymanie zegara i RAMu baterią Li-Ion, napięcie podajesz na specjalnie do tego celu przeznaczoną nogę. [url=http://www.microchip.com/wwwproduct... katalogowa MPC79410
Jakby się uprzeć, to wystarczy do wszystkiego 1 timer wywołujacy przerwanie, a każdej obslugiwanej pierdółce można założyć bajtowy licznik w RAM (typowo 1 lub 2 bajty), odliczajacy do 0, jezeli jest zero, to wykonuje co trzeba i resetuje licznik do wartości (mierzony czas)/(czas pomiędzy kolejnymi wywołaniami timera), procek się specjalnie nie zatyka,...
Witam, zaczynam sobie właśnie robić pierwszy raz w życiu komunikację po I2C. Piszę w asemblerze. Chciałbym wykorzystać sprzętowe TWI które sobie "siedzi" w ATmegach ;) .... i tu mam mały problem ... tzn mętlik w głowie już ;) .... powinno być prościej niż programowo to robić czy też w oparciu o USI i tak to wygląda po ogólnym opisie rejestrów ale ......
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...
O miło że ktoś jeszcze bawił się tym czujnikiem, bo na elektrodzie nic na ten temat nie umiałem znaleźć. Problem u mnie jest w samym podłączeniem, a konkretnie z pinem MCLK. W dokumentacji pisze że trzeba go podłączyć do rezonatora układu master i ma to być 32kHz. Problem w tym że moja ATmega32 chodzi na zegarze 3.57MHz. Nie chce w ciemno podłączać...
Sorry pomyliło mi się z E2, na schemacie i pcb mam do E2 (A2). Także wydaje mi się, że adres ma dobry, 0xA8 Write oraz 0xA9 Read. Poza tym na read przez chwilę mi szedł, na adresie A9. PCF ma adres 0xA0 i 0xA1. Poza tym na adresach A8 i A9 eeprom działał mi wraz z 3 innymi urządzeniami na i2c, tyle, że tam używałem AVRki (ATMega644PA-AU). Myślę, że...
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...
Dzień dobry. Uczę się C na AVR. Często zwolennicy przesiadania się z Bascom na C twierdzą, że w tym drugim przypadku można generować krótsze kody. Bascom - Atmega 32. Testowy program pobiera z układu PCF8583 godzinę, minutę i sekundę i wyświetla to na wyświetlaczu LCD. Po skompilowaniu wsad do programatora ma około 900 bajtów. Atmel Studio 6. Optymalizacja...
Witam. Próbuję nawiązać łączność z zegarkiem pcf8583 poprzez interfejs I2C,ale interfejs nie generuje nawet znacznika przerwania TWINT po wyslaniu bitu startu.Poniżej zamieszczam kod, który to realizuje (tak myśle:). #include <avr/signal.h> #include <avr/interrupt.h> #include <avr/io.h> #include <stdlib.h> #include "lcd.c"...
Nie znam Bascoma, ale jak dla mnie Twój PCF działa dobrze. To co otrzymujesz wygląda na niezamieniony na BCD bajt otrzymany z PCF'a. Co prawda dodatkowo jakby gubił kilka sekund. Sprawdź czy T = Makebcd(s) to poprawna komenda na zamianę z BCD na int, bo w tą stronę powinieneś to zamienić. R.
Witam, jak w temacie, czyli źle wyświetlają mi się cyfry na LCD w sensie tak chcą ( 00 -> 01 -> 00 -> 01 -> 00 -> 08). Nie wiem po jakiej stronie leży problem. Pracuje na płytce ewaluacyjnej GOTRONIK z Atmega32A z RTC PCF8583 ( INT-PD2, A0-GND, SDA-PC1, SCL-PC0) Umieszczam kody programu: Main.c [syntax=c]#define F_CPU 16000000L #include...
Witam. Może to coś Ci pomoże - jest to biblioteka do obsługi zegarka PCF8583, ale myślę że uda Ci się ją zaadoptować do obsługi przetwornika. Adres urządzenia zdefiniowany jest na samym początku. SLA_W to adres do zapisu, a SLA_R - adres do odczytu. Tobie najbardziej przydadzą się funkcje Write i Read (dwie pierwsze). Pierwsza zapisuje bajt do pamięci...
Mam wyłączone optymalizacje, a dodatkowo kolejny odczytany bajt to jest właśnie address+1; Zgaduję że to jest jakoś związane z tym: https://my.st.com/public/STe2ecommunitie...
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...
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 tygodnie wyłaniasz z bajtu andem i przesuwasz. Pełen rok? w dodatkowej komórce przechowujesz. Przy każdym odczycie sprawdzasz czy nodulo z roku jest równe temu rokowi już zaimplementowanemu, jeśli nie dodajesz 1 do roku w nowej komórce. Bardzo proste i najlepsze rozwiązanie. A jeśli układ ma taka , a nie inna mapę pamięci nic z tym nie zrobisz....
Przesadzone! Nie zgadzam się. Po to wymyślono struktury, aby je stosować. Jeśli ktoś chce - może wszystko zapamiętywać jako tablicę char-ów (bajtów) - wszak tak jest zorganizowana pamieć 8-bitowców, prawda? Tylko po co sobie utrudniać życie? Zadeklaruj stałą tablicę w PROGMEM, a ze struktury odnoś się przez wskaźnik. Kolega słusznie zauważył. Tablicę...
Witam !!! Czytam i czytam o tych układach i nie mogę tego odpalić. Kupiłem sobie płytkę testową z mikrokontrolerem Atmega16 i w sumie już coś nie coś się nauczyłem o mikrokontrolerach, oprócz i2c. Mam podłączone pod i2c eeprom 24c02 i rtc PCF8583. Orginalnie SDA i SCL nie są podciągnięte prze rezystory do 5V+. Dodali programiki testowe do tej płytki...
Na PCF8583 działa normalnie i znajduje adresy a kod jest taki. $regfile = "m168def.dat" $crystal = 8000000 'Deklaracja portów od wyświetlacza LCD Config Lcd = 20 * 4 'konfiguracja typu wyťwietlacza 'LCD Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portd.4 , E = Portd.3 , Rs = Portd.2 'konfiguracja linii 'mikrokontrolera,...
Dzień dobry, Mam następujący problem z tym zegarem: układ wydaje się nie liczyć prawidłowo niczego oprócz setnych części sekund. - Na wyjściu INT pojawia się przebieg prostokątny 1 Hz o wypełnieniu 50% - Komunikacja po sprzętowym TWI/I2C (ATmega16) funkcjonuje sprawnie, zapis i odczyt bajtów z innej lokalizacji pamięci RAM zegara daje oczekiwane wyniki....
stanowczo polecam kostkę o której pisał Jacu$: PCF8583 programowa obsługa I2C jest prosta jak drut - procedurki znajdziesz w sieci, ja poprzerabiałam akurat te co są na strnce BTC - Mikrokontrolery avr w praktyce (http://www.btc.pl/index.php?id=avr )- pociąg sobie przykładowe programy.... kostka jest o tyle sympatyczna że oprócz zegarka z budzikiem...
Z tego co widzę to właściwie odczyt tego układu na magistrali I2C jest typowy i rzeczywiście adres 162 jest podstawowy, Co do braku rozdzielenia! Masz po kolei 8 bajtów zaczynając od sekundy, a kończąc na roku i to od razu w BCD :) super wygoda. Każde ACK po bajcie odczytu samo podnosi licznik więc jeśli po czterech pierwszych odczytach nie dasz ACK...
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...
Właśnie powstała nowa wersja zegara - oczywiście lepsza od poprzedniej. Teraz czas mierzy PCF8583 - bardzo fajny układ RTC Philipsa. Zdecydowałem się na takie rozwiązanie, gdyż ciągnie bardzo mało prądu i ma wszystkie potrzebne informacje na temat pomiaru czasu. W tym modelu procesor "wyciąga" z niego informacje po magistrali I2C i przekazuje na lampy....
Tworząc prosty układ z wykorzystaniem ATMEGA-32 , który miał rejestrować na karcie SD datę i czas wejścia/wyjścia do/z mieszkania, zatrzymałem się na oprogramowaniu zegara PCF8563 - brak "lekkostrawnej" biblioteki. Dla zegara PCF8583 i iic istnieje przejrzysta biblioteka napisana przez Roberta Krysztofa, która posłużyła mi do stworzenia analogicznej...
A na pewno odczytujesz kolejne rejestry? Ja również się ostatnio bawiłem tym zegarem, tylko dołączałem do 51nki AT89S8252 i całe sterowanie magistralą I2C robiłem sam. Nie znam AVRów, tak więc, czy w tym, z którego korzystasz jest wbudowana magistrala I2C czy też sam ją zaimplmentowałeś? W moim przypadku również dostawałem tą samą wartość ponieważ czytałem...
kiedys wykorzystywalem te funkcje do komunikacji z pcf8583 i bylo wszystko OK. Mysle ze problem tkwi gdzies w programie dla SLAVE bo tego nigdy nie robilem. a Jesli chodzi o te funkcje od adresowania i wysylania danych to wygladaja one nastepujaco: void I2CSendAddr(unsigned char addr, unsigned char rd) { // adres podawac jako 8 bitow ostatni...
Witam, Piszę program w CodeVisionAVR, do tej pory było wszystko ok, lecz pojawił się pewien problem z obsługą kostki PCF8574. moje pytanie jest , czy ma ktoś gotowy przykład obsługi PCFa najlepiej napisany w CVAVR. Nie wiem jak to zacząć... Najlepiej nauczyć się na gotowym przykładzie :) Pozdrawiam august_a - wstydź się ;) Potrafisz dogadać sie z PCF8583...
Witam Piszę program do urządzenia, które będzie w samochodzie: mierzyć napięcie, temperaturę w kilku punktach za pomocą DS18B20, pokazywać czas z obsługą PCF8583 i dodatkowo są dwa gniazda USB, do ładowarek różnej maści. Sterowanie będzie za pomocą impulsatora z przyciskiem, będzie też dźwięk z buzerka i regulacja jasności 6 wyświetlaczy LED za pomocą...
Witam. Mam problem z ozywieniem tego zegarka RTC. Objawy sa takie, ze po wyslaniu i2c_start jest ok, po wyslaniu bajtu adresu jest brak odwpowiedzi od Save. Przegladnalem podobne temety na forum, ale nic pomocnego nie znalazlem. Na nozce siodmej jest sygnal 1Hz, wiec uklad pracuje. moj program: Read_Time: LCALL I2C_Start LCALL i2c_Czekaj JC NoACK1 ;...
Witam A0 w PCF także do masy. PCF działa poprawnie zarówno sam jak i z pamięcią. Nawet jak w programie zostawię tylko kod odpowiedzialny za obsługę pamięci, bez ani jednej linijki tyczącej się PCF, to i tak pamięć świruje :) Kod bez obsługi PCF wygląda mniej więcej tak: [syntax=cpp] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h>...
Próbuję obsługiwać układ pcf8583 przez i2c, i wydaje się że komunikacja właśnie po i2c nie chce mi działać.. Kod do i2c pobrałem z internetu, nie znam na tyle tej magistrali, żeby samemu sobie to napisać.. Oto część kodu: #define SCL I2C_SCL #define SDA I2C_SDA void i2c_wbyte (uint8_t dana) { //wysłanie pojedynczego bajtu do Slave'a I2C...
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...
1. czy da sie wylaczyc sygnal 1 Hz na wyjsciu INT układu (żeby nie wywoływał przerwania co sekunde tylko wtedy kiedy nastąpi alarm ?) 2. jaką wartość powinienem wysłać do procka, żeby ustawił odpowiednio rok i dzień miesiąca, w moim rozumieniu jest tak: -chcę ustawić rok 02 i dzień miesiąca 25: -rok jest w zmiennej year a dzień miesiąca w zmiennej day:...
Witam wszystkich Po nierównej walce z okiełznaniem PCF8583 udało się uruchomić zegar który w końcu poprawnie zapisuje datę.Pomógł z tym kolega Mundi1970 w tym wątku http://www.elektroda.pl/rtvforum/topic24... Teraz mam kolejny problem ,ponieważ do tego zegara dodałem termometr jednopunktowy z pomocą sieci i helpa udało się.Problem polega na tym...
LosRabinos Nie wiem, czy trochę poniewczasie, ale zawsze to coś. Odnośnie hardware-u: PCF8563 noga 3 (A0) do masy i wtedy (pierwszy listing): OD KIEDY PCF8563 MA NOGĘ ADRESOWĄ? Takowa jest w modelu pcf8583, w 8563 pełni ona rolę programowanego wyjścia sygnału etatowego i jeśli z niego nie korzystamy to powinna być pozostawiona jako niepodlaczona......
Mama takie pytanko otoż w ukladzie mam zamontowane 3 uklady pracujace na magistrali I2C. Sprawdzalem czy wszystkie mi odpowiadaja i adresy za pomoca programu Dim Adres As Byte 'deklaracja zmiennej Adres = ( 0 - 255)- 1 bajt Config Scl = Portc.5 ' konfiguracja magistrali i2c Config Sda = Portc.4 I2cinit 'Config Lcd = 16 * 1a ' konfiguracja wyświetlacza...
oprócz zmiennej temp reszta czyli aż int0_flag jest volatile większa cześć kodu jest z słynnej ostatnio książki na forum. jeszcze nie zdążyłem za dużo pozmieniać [syntax=cpp] /* * main.c * * Created on: 2012-02-14 * Author: Jacek */ #include <avr/io.h> #include <stdlib.h> #include <avr/pgmspace.h> #include <avr/interrupt.h> #include...
Witam moze ktos mi pomoze, potrzebuje program ktory bedzie pobieral z klawiatury 1234567890#* kod (4 cyfrowy) i zapisywal, dokladnych szczegołów nie znam ;/ ale chodzi o program ktory by po wcisnieciu odp sekwencji klawiszy np #1* pobieral 4 cyfry i zapisywal do pamieci (zeby sie puzniej dalo tez te wpisy kasowac) wiem ze chaotycznie pisze, ale jestes...
W komentarzach będą wypisane błędy: Sub Odczyt_danych I2cstart I2cwbyte 162 I2cwbyte 2 I2cstart I2cwbyte 163 I2crbyte Sekundy , Ack I2crbyte Minuty , Ack I2crbyte Godziny , Ack I2crbyte Dzien , Ack I2crbyte Miesiac , Ack 'powinno być NAck - bo to ostatni odbierany bajt I2cstop 'konwersja do dziesietnej Sekundy = Makedec(sekundy) 'proponowalbym...
Załącz plik ds18x20.c, załączyłeś tylko plik nagłówkowy. Potem będziesz musiał zamienić zmienne cel i cel_fract_bits na tablice i będzie ok. Twoim zdaniem utworzenie tablic będzie zbawienne, może to trafne. Od jakiegoś czasu ma pomroczność i nie mogę się skupić, najprostsze rzeczy stwarzają mi ogromną trudność - to chyba przesilenie. A zatem stworzenie/zamiana...
Dziękuję za odpowiedź. Znalazłem na forum napisany kawałek kodu przez Dosinsky'ego: //**************************************... // WARUNEK STARTU LUB PONOWNEGO STARTU TWI // funkcja zwroci 1 jezeli warunek startu lub ponownego startu nie zostal wystawiony // funkcja zwroci 0 jezeli warunek startu lub ponownego startu //**************************************...
Witam. Mam problem z ta pamiecia. Mecze sie juz dwa dni i nic. Podlaczylem ja na jednej magistrali z PCF8583 (RTC) i ADS1100 (ADC) do uP Atmega 8. Zegar i przetwornik chodza bez problemu. Narazie uzywam programowej obslugi I2C w AVRGCC z biblioteki RKlibAVR... Pin A0 pamieci mam podlaczony do masy wiec adres pamieci na magistrali to 101000px, x=1(odczyt),...
Witam :cry: Po tygodniu walki z tym problemem postanowiłem poradzić się fachowców, więc piszę. Problem polega na tym, ze po wysłaniu całej zawartości AT24C64A dostaję kilka danych mniej. (Zamiast upragnionych 8192 dostaję np: 8190 , 8180 , 8080! ostatni pomiar) kilka razy dostałem całą paczę ale to musi być pewne i nie zawodne. Pracuję na oscylatorze...
Robisz tak; 1.Podczas wprowadzania roku obliczasz jakie bity wpsać (0,1,2,lub 3) wg.algorytmu: 0 jesli rok przestępny, 1 jesli pierwszy po przestępnym, 2 lesli drugi po przestępnym i 3 jeśli trzeci po przestępnym) Rok jest przestępny jeśli dzieli się przez 4 ale nie dzieli się przez 100 chyba że dzieli się przez 400. Rok 2004 jest rokiem przestępnym...
Witam wszystkich. Zaprojektowałem i uruchomiłem zegarek z wyświetlaczami LED(SA10-21GWA) i układem PCF8583 współpracującym z mikroprocesorem Atmega8 oraz układami PCF8574AP na szynie TWI(i2c). http://obrazki.elektroda.net/21_12497604... http://obrazki.elektroda.net/58_12497606... http://obrazki.elektroda.net/95_12497605...
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...
Po pierwsze: ...czyli ustawienia zegara szyny SCL i po obliczeniu wyszło 489 Hz. Co spełnia wymagania wg noty katalogowej czyli 16 razy mniej niż częstotliwość układu PCF 32768Hz. Nie wiem skąd ten pomysł. W nocie katalogowej układu PCF8583, którą ja znalazłem, częstotliwość maksymalna szyny SCL wynosi 100kHz. Po drugie: Sprawdzaj chociaż, czy otrzymujesz...
[syntax=c] /* * main.c * * Created on: 2014-10-01 * Autor: Dariusz M. */ #include <avr/io.h> #include <avr/wdt.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <util/delay.h> #include "1Wire/ds18x20.h" #include <string.h> #include <avr/eeprom.h> #include "I2C_SOFT/i2c_soft.h" #include "LCD/lcd44780.h"...
https://obrazki.elektroda.pl/2040620700_... Przedstawię tu spontaniczny projekt który został zrobiony w jeden dzień - dwukanałowy ściemniacz pasków LED oparty na PIC12F1612, zbudowany przy wykorzystaniu części z elektrośmieci. Oprócz PICa mój ściemniacz będzie korzystał z pamięci EEPROM do zapisu stanów jasności - jest to niezbędne,...
WITAM :D Wiem, że różnego rodzaju zegarków było już wiele na tym forum, jednak ja chciałbym przedstawić swój ze względu na kilka ciekawych rozwiązań i funkcji, które inne zegarki z pewnością nie posiadają ;) Zacznę może od hardware'u a potem opiszę, które z urządzeń wykorzystuje napisany przeze mnie program. [Program będzie jeszcze rozbudowywany, dlatego...
Build started 10.10.2010 at 13:19:40 avr-gcc.exe -mmcu=atmega32 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT main.o -MF dep/main.o.d -c ../main.c In file included from c:/avr/winavr/lib/gcc/../../avr/include/... from c:/avr/winavr/lib/gcc/../../avr/include/...
W ogóle to źle realizujesz I2C. Powinieneś się zabierać za rejestry DDR a nie PORT. Masz tutaj kawałek kodu: ;=======================================... I2cstart: ;=======================================... cbi i2cport,sda ;sda = 0 inicjalizacja Portów cbi i2cport,scl ;scl = 0 inicjalizacja Portów cbi I2Cddr,sda ;sda...
Witam, mam problem z PCF, podlaczylem uklad wg schematu : http://obrazki.elektroda.net/15_11690424... Chce sie nauczyc programowo obslugiwac i2c, dlatego nie korzystam ze sprzetowego i2c ATmegi. przesylam moj program. Juz mnie szlag trafia, nie wiem gdzie mam blad. Chcialem odczytac z rejestru sekud jakas wartosc i nic nie dziala pokazuje mi 0 na...
Witam :D Postanowiłem umieścić na tym forum kolejny spośród wielu ciekawych i mniej ciekawych :D moich projektów typu uP. Jeśli ktoś chce zbudować podobny termostat i szuka gotowca to ten program może mu się przydać ;) Jest nim cyfrowy termostat, który posiada również zegarek i budzik. Do budowy zegarka użyłem popularnego układu RTC PCF8583, który służy...
[syntax=c] #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include <util/delay.h> #include "include/lcd44780.h" #include "include/i2c_twi.h" //********** funkcje konwersji char dec_na_bcd(char num){return ((num/10 * 16) + (num % 10));}//set = dec_na_bcd(set); char bcd_na_dec(char num){return ((num/16 * 10) + (num...
Usunąłem Wait 1 przy konwersji z DS18B20, działa, bez problemu ( na trzech przewodach ), tylko wyniki są opóźnione - tzn. wyświetlany wynik nie jest z aktualnego pomiaru, tylko z poprzedniego. Dodałem jeszcze dwa czujniki DS18B20. Ich zapis razem z godziną i datą na karcie jest jak najbardziej w porządku, tylko wyświetlanie trochę szwankuje - tzn. czasem...
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...
Witam Link do tej noty i2c_start(); i2c_wbyte(0xa0); i2c_wbyte(0x10); i2c_wbyte(13); i2c_stop(); delay_ms(10); // czas na zapis 13 pod adresem 0x10 i2c_start(); i2c_wbyte(0xa0); i2c_wbyte(0x10); // ustawienie na adres 0x10 i2c_stop(); i2c_start(); i2c_wbyte(0xa1);...
Przeczytałem wszystkie posty i nic nie rozumiem.... albo rozumiem wszystko (zależy od podejścia) Po 1 rozumiem, że TWI służy do komunikowania z PCF8583 Po 2 to nie rozumiem do czego służyć ma przerwanie od TWI, przecież mamy konfigurację master-slave a w takiej konfiguracji slave tylko odpowiada na zapytania. Z tego co rozumiem z pdf to przerwanie jest...
bajty polskie zamień bajty dzielenie bajty
sterownik honda bosch zmywarka instrukcja corel komputer
podajnik isaplan dekoder manta
Instrukcja obsługi Grundig Vivance GV 3005 VPS po polsku Suszarka Bosch EcoLogixx nie wypompowuje wody po suszeniu