Witam, tu masz link z przykładem: http://www.elektroda.net/dla_domu/zegar_... Pozdrawiam ArteXL
problem rozwiązany zamiast t=makebcd(s) trzeba dać makedec , temat zamykam
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. Miałem podobny przypadek - ale co jakiś czas były prawidłowe odczyty z PCF-a. Pomogło podłączenie kondensatora między nóżkami zasilania PCF-a. Pozdrowienia - teedd
(at)Regan_3000 Czy któraś z sugestii powyżej rozwiązała Twój problem? Mam identyczny problem. (Jestem na Atmedze16/8MHz) Pisze w C, zegar działa poprawnie gdyż obsersuję na oscyloskopie transmisję danych (zauważam zmianę dziesiątek sekund/sekund/minut w bcd na linii SDA), zapewne coś siedzi w kodzie. (PCF8583 podpięcie: SCL,SDA -> przez rezystory...
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...
Eeeeeh - Bascoma to ja już prawie zapominam. Ale nie pisz że bez znaku entera program w bascomie ci czegoś nie czyta - poczytaj w helpie na temat config input i możliwości deklarowania znaków końca linii. Poza tym wyłączyłeś buforowanie sprzętowe dla UART'a więc nie dziw się, że to hmmm "tak sobie działa" - przy tak napisanej obsłudze komunikacji -...
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...
Właśnie, o to chodziło, też zastanawiałem się nad tym, że w tym bajcie, jest też odczyt dnia tygodnia i może to z tym mi kolidować, zmieniłem teraz i zamiast 03/41 mam 03/01, czyli prawidłowo wreszcie. A jeśli chciałbym wykorzystać odczyt dnia tygodnia, by wyświetlać nazwy dni to jak to zrobić, żeby nie kolidowało mi z miesiącem?
Witam No przyznam że nie - sugerowałem się tym schematem: http://dhost.info/ky3orr/index.php?dzial... Po wywołaniu funkcji - program wisi. Podpiąłem na pająka - i nie pomogło.
Proszę bardzo: [syntax=c]#include <TWI.h> #include <head.h> #include <hardware.h> #include <atmel_arm_lib.h> #include "delay.h" static u8_t bcd2bin(u8_t bcd); static u8_t bin2bcd(u8_t bin); //u8_t PCF8583_get_status(void); u8_t PCF8583_get_status(void) { PCF8583_status=PCF8583_read(0); PCF8583_alarm=(PCF8583_status&2); return...
No i kurczę działa. A wcześniej się męczyłem i lipa. Dzięki wielkie za pomoc. Musiałem zmienić nieco docelowy soft. Zastosowałem Gosub Getdatetime Day_nr = Dayofweek() I mam teraz zarówno odczyt godzin, minut i dnia tygodnia. Super dzięki. Później przetestuję w gotowym urządzeniu, bo na biurku działa dobrze.
Mam zamiar dolaczyc ten uklad do 89c51 no i mam kilka pytan :) Nie jestem pewien (bo z angielskiej noty katalogowej malo zrozumialem)ale do poprawnej pracy uklad potrzebuje zasilania 1,5v tak? I jeszcze problemem dla mnie jest jak wprowadzic czas,date do ukladu? Posiadam tylko programator, nic wiecej. Program pisze pod bascomem (dokladniej to nie pisze...
Nic sie nie dzieje, bo to nie ma prawa działać :D Gdzie rezystory podciągające linie SDA,SCL do plusa? Dostaw tam dwa rezy 10kR... Powinno to rozwiązać problem. Twój program wisi na komunikacji I2C, procek czeka na ACK lub NACK pod koniec transmisji i z powodu braku podciągania nigdy tego nie dostaje...
w jaki sposób rozwiązujesz rok w 8583 ? Jak "rozwiązuję rok" ;) to dość trudno tak w kilku zdaniach wytłumaczyć, chociaż sprawa generalnie jest prosta... Może więc zamiast się rozwodzić, pozwolę sobie wkleić dobrze (mam nadzieję) skomentowane fragmenty swojego programu. ' ****************************************... 'Odczyt:...
incr nie działa bo nie spełniony jest warunek S = 60. pewnie dlatego, że czytasz co dwie sekundy zamiast częściej np. 750ms, układ robi odczyt i odczyta akurat 59s a potem odrazu odczyta 1 :P
Posiadam Help'a po polsku a notę katalogową po angielsku tylko nie rozumiem jak ma być odczyt godz z tego pcf'a jak wyświetlić informacje przesłane za pomocą I2C.
Witam, Chciałem sobie napisać program do obsługi PCF8583 i DS18B20. Popróbowałem trochę i wyszło mi coś takiego: Kod nie jest poprawny. Z listingu powyżej pozostawiłem tylko znaczące tytuły do których odnosi się moja opinia. Masz tam kilka "SUB" i subrytyn (labels) do których nie ma w programie odwołań, inaczej mówiąc nie są one w żaden sposób uruchamiane....
To ma być sterownik ogrzewania i docelowo ma obsługiwać większą liczbę czujników, z tego względu zależy mi na tym aby to przerwanie inicjowało konwersję temperatury. Nie chcę programu głównego zatrzymywać na czas oczekiwania na konwersje, a w pętli głównej chcę umieścić jeszcze kilka innych zadań jakie ma spełniać układ. Zdziwiło mnie tylko zachowanie...
Przy przeszukiwaniu i2c znajduje układzik pod adresem 78 Prubuje wysłać do niego dane: I2cstart I2cwbyte 78 I2cwbyte 0 I2cstop i nic :(( układ nie raguje prubowałem juz z desperacji cos takiego: Adres = 50 Wartosc = &B11001100 '-------------- START --------------------- Do Waitms 300 I2cstart I2cwbyte Adres I2cwbyte Wartosc I2cstop Adres = Adres + 1...
mam programik obsługujący klawiaturę zbudowaną w oparciu o układ pcf 8574.Mam potrzebę zrealizowania odczytu z klawiatury trzech zmiennych potwierdzanych jednym klawiszem z możliwością cofnięcia wpisanej cyfry lub cyfr też innym klawiszem i połączenia tych cyfr np. temp=a1 ,temp=a2, temp=a3 liczba=a1a2a3= np123 albo789 w jedną zmienną Chciałbym się...
Witam wszystkich, mam pytanie dotyczące obsługi RTC w MCS Bascom 8051. Mianowicie jak z PCF8583 wyciągnąć dzień tygodnia i rok, jak obsługiwać format wyswietlania godziny (12/24 godzinny), słyszałem również, że układ sam moze rozpoznawać rok przestępny. Buduje właśnie układ z PCF8583, bez problemowo procesor odczytuje godziny, minuty i sekundy, oraz...
Witam! Proszę o pomoc w rozwiązaniu problemu. Jedyne dane jakie dostaję od PCF-a to 165 dla wszystkich danych (godzina, miesiąc,.....) '$sim 'praca w emulacji sprzętowej $crystal = 4000000 $regfile = "m32def.dat" Config Sda = Portc.1 'konfiguracja linii SDA magistrali I2C Config Scl = Portc.0 'konfiguracja linii SCL magistrali I2C Config Lcd...
Witam, Buduję kolejny mały układzik testowy, w którym natknąłem się na problem zapisu liczby typu integer do pamięci flash. Wymyśliłem sobie taką metodę która niestety nie do końca chce działać: Const Memw = 160 Const Memr = 161 Dim Bl As Byte Dim Bh As Byte Dim Ilosc As Integer ... 'Zapis liczby pod wskazany adres: Bl = Low(ilosc) Bh =...
Witam. Zmodyfikowałem lekko pewien program ale nie działa jak powinien. [syntax=basic4gl] Declare Sub Gettime() Declare Sub Getds Declare Sub Wyswietlanie Deflcdchar 0 , 12 , 18 , 18 , 12 , 32 , 32 , 32 , 32 Deflcdchar 1 , 32 , 14 , 21 , 21 , 23 , 17 , 14 , 32 Dim Lsb As Byte Dim Msb As Byte Dim Tempa As Single Dim Tekst1 As String * 10 Dim Tm(5) As...
Witam, czy może ktoś zerknąć na ten kod. Dlaczego nie da się odczytać dnia tygodnia. (odczytuje miesiac, shift o 5 w prawo, zmieniam na dec, wyswietlam na LCD, przed zapisem zmieniam na bcd, przesuwam dzien w lewo o 5). Zapewne dla niektórych będzide to oczywiste, dlatego licze na waszą pomoc :) program odczytuje i zapisuje date, godzine itp. wm-miesiac,...
Witam. Jak wiadomo tematów na temat tego pcf-a było już pełno. Jednak po przeszukaniu neta tylko jeden temat na forum był prawie taki sam , lecz tamte "posty" nie pomogły mi w moim przypadku , a mianowicie problem mam taki: dla prób pobrałem z neta kod "zegara" (oczywiście w bascomie) , oto on: https://filmy.elektroda.pl/60_1323792711... odłączenie...
Hej. Doczego podlaczyc linie A0? Do Vcc czy do masy i czym sie to rozni?
Witam! Napisałem następujący program: I2cinit Pcf = 255 I2cstart Do I2csend &H40 , Pcf Waitms 100 I2creceive &H41 , Pcf Pcf = Pcf Or &B11111111 Loop Until Pcf = &B00000001 'wczsniej oczywiście skonfigurowałem porty scl i sda, A0,A1,A2 połączone z masą, na porty wejściowe podaję stany 0 . mogę wówczas zaobserwować zmianę na linii INT układu PCF ale niestety...
Witam Niestety to nic nie daje. Jak na razie mam trzy sposoby odczytu rejestrów w PCF8563: Dodano po 1 Problem rozwiązałem - maskowanie było w złym miejscu Powinno być: [syntax=basic4gl] I2cstart I2cwbyte 162 I2cwbyte &H02 I2cstart I2cwbyte 163 I2crbyte Sekundy_bcd , Ack 'Odczytuje sekundy I2crbyte Minuty_bcd , Ack 'Odczytuje minuty I2crbyte Godziny_bcd...
hej robiw -> próbuję tę twoją procedurę powyżej ale za chiny nie chce mi się ani razu to przerwanie wywołać. Z drugiego procka próbuję do tego wysłać coś poprzez I2C w ten sposób: do I2cstart 'Start I2cwbyte 128 ' adres układu SLAVE I2cwbyte 65 ' dana do przesłania do Slave I2cstop 'Stop wait 1 loop na magistrali mam jeszcze PCF8583 i z niego odczyt...
Rufuse: Lutowanie bez podstawki to nie problem - chyba że grzejemy go pół godziny lutownicą. Kapier: A po czym poznajesz że zapis i odczyt są OK? Tzn. że zapisując np. 0x21 do rejestru 0x02 później odczytujesz tą samą wartość? Napisz jak to sprawdziłeś. Kondensator z OSCI podłącz nie do VCC tylko do masy. Nie jest to może odpowiedź na Twój problem,...
No i nadszedł czas na przedstawienie odbiornika nad którym prace nadal trwają. A o to kilka fotek płytki drukowanej: http://obrazki.elektroda.pl/7470003500_1... http://obrazki.elektroda.pl/5648438000_1... http://obrazki.elektroda.pl/3455010300_1... http://obrazki.elektroda.pl/4290851200_1...
Witam Chciałem zapytać, czy możliwa jest zmiana nazwy pliku w którym zapisują się wyniki - np co dziennie inna nazwa pliku ( np. powiązana z datą ) ? Używam PCF8583 i w sumie mógłbym brać informacje z zmiennych dnia i miesiąca lub dokonywać zmiany o 23:59:59. Używam standardowego kodu do zapisu: Sub Write_to_sd() Local Errorcode As Byte ''()...
Witam Stopniowo rozbudowując o kolejne konfiguracje układ chciałbym mieć możliwość ustawiania parametrów zegara przez pilota ( w sumie to bardziej wygodne i nie zabiera wyprowadzeń uC ). Mam program z menu działającym na przyciskach, zastosowałem flagi, gdyż sprawdzanie tylu wersji warunków niepotrzebnie zagmatwałoby kod. Zostawiłem obsługę przez przyciski...
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...
Witam Z wycinków kilku programów chciałem zrobić jeden duży barkuje kilku rzeczy i zwiazku z tez pytania W jaki sposób mogę zwiększyć ilość wejść i wyjść żeby zmieścić wszystko ? ( patrz 1 PINY ) brakuje ustawiania podlewania względem kalendarza zielonego pojęcia nie mam jak z pcf mogłbym ustawić godzinę i czas podlewania np 18:00]przez 1 min ? brakuje...
http://obrazki.elektroda.net/58_12515666... Chciałem zaprezentować mój projekt komputerka samochodowego... Jako procesor wykorzystałem Atmega168, jako że napisałem całość w BASCOM ciężko było zmieścić się w 8kB... Na przyszłość dobrą alternatywą będzie Atmega328 hehe ;P - LCD 4x16 biało-niebieski - 4 wejścia 12V ( dzielnik 3:1 ) - 1 wejście...
Dodaj przed pętlą Do...Loop komendę: I2cinit oraz podwieś linie SDA i SCL do Vcc poprzez rezystory 4.7 k. Jeszcze jedna sprawa, jeśli masz najnowszą wersję Bascom'a to powodem błędnej komunikacji jest biblioteka I2c. Należy tą bibliotekę zastąpić plikiem ze starszej wersji Bascom'a. Pozdrawiam...
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. Zacznij od odczytu. Masz może podpięty wyświetlacz ? Byłoby łatwiej testować. Tu przykładowy podprogram odczytu zegara sprawdzony i działający. Wyświetla na LCD Sub Odczyt_czasu I2cstart I2cwbyte 162 I2cwbyte 2 I2cstart I2cwbyte 163 I2crbyte S , Ack I2crbyte Mn , Ack I2crbyte H , Nack I2cstop cls Lcd "time " ; Bcd(h) ; ":" ; Bcd(mn) ; ":" ; Bcd(s)...
Witam, Korzystam z minimodułu MMEGA01 z prockiem ATmega128 oraz zegarem PCF8583. Program pisze w Bascom. Do magistrali I²C mam podpięte rezystory wg. schematu modułu 2k7. Problem polega na tym, że gdy chce odczytać godzinę minutę oraz sekundę, to sekundy przeskakują co kilka np, z 25 na 31 itp.. z minutami z resztą też coś jest nie tak. Sprawdzam...
... 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...
No właśnie chcę żebyś zrozumiał - wiesz jak raz zrozumiesz to potem wszystko będziesz dał radę zrobić sam i chyba satysfakcja też większa ;) Ja też, patrząc na mnie całkiem na zimno, jestem samoukiem ;) Też zaczynałem od różnych pytań - możesz sam sobie poczytać i pośmiać się z moich pierwszych postów na forum. A więc ten rysunek pokazuje poszczególne...
Zawsze jak wchodzisz w przerwanie np.On Timer lub w podprogram sub procesor odkłada zawartość pewnych rejestrów na stos (co zajmuje mu ileś us) a po przerwaniu (lub sub-ie) zdejmuje ze stosu (co znowu zajmuje czas). Rachunkowo wygląda wszystko dobrze w programie-ale tylko gdy procesor chodzi z nieskończoną prędkością. A chodzi ze skończoną. A-w tych...
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...
Dlaczego chcesz odczytywać czas w przerwaniu? Przerwanie powinno być jak najkrótsze. Odczyt danych z pcf-a zrób w pętli głównej a przerwanie wykorzystaj tylko do migania kropką.
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ść...
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
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ę...
Witam. Napisałem w Bascomie prosty program do odczytu 2 termometrów DS1820 i PCF8583 - właściwie jest to zarys gotowych procedur. Niestety przy kompilacji wywala mi masę wewnętrznych błędów - Internal Errors w ostatniej linii. GDZIE ROBIĘ BŁĄD? Zmniejszałem liczbę zmiennych typu Byte (chyba jest ich zbyt dużo więc zmniejszyłem rozmiar tablicy Adresy)...
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.
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)...
Po pierwsze to zajrzyj do pdf'a odbiornika IR, bo na Twoim schemacie brakuje konda i rezystora przy podłączeniu TSOP'a. http://pdf1.alldatasheet.com/datasheet-p... Ma być w programie: Wygaszacz (godzina + temperatura), - Czasomierz najprościej na programowym RTC: str. 244 w książce Wiązni, zaś temperatura - str. 293. Wszystko...
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?
Witam wszystkich :) Napisałem program zegarka na PCF8583 ale chciał bym jeszcze odczytać sam dzień tygodnia (bez daty) w formacie: poniedziałek,wtorek,środa itd.Jakoś nie mogę sobie z tym poradzić...Pozdrawiam... $regfile = "m8def.DAT" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1...
Zablokuj przerwania na czas odczytu temperatury, powinno pomoc. Druga opcja to wykorzystać przerwanie zegara i od razu po odczycie czasu wykonać odczyt temperatury i potem wysłać rozkaz konwersji temperatury do DS. Jak podczas nadawania po 1Wire program wykona jakieś przerwanie to będą problemy z DS (przynajmniej ja takie miałem)
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...
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
Witam serdecznie! Co znaczą znaki zapytania przy odbiorze i odczycie danych z PCF8583, przy godzinach minutach i sekundach , błąd komunikacji? Jak w ogóle powinien zareagować układ co powinien wyświetlić przy pierwszym poprawnym odpaleniu? Dzięki :)
pcf8583 odczyt odczyt pcf8583 bascom pcf8583
klucz drążek kierowniczy briggs falowanie obrotów odczyt temperatury renault
skoda felicia silnik przerywa jakie gniazdo prądotwórczego
Najlepsze styczniki: Siemens, ABB, Schneider Electric i inne Audi Q7 błąd komunikacji 1000 – tylne lewe drzwi, przelotka, moduł J388, diagnoza