spróbuj tak zmienić kod brakuje odnośnika do podprogramu odczytującego czas z PCFa Do Cursor Off Czas Wait 1 Locate 2 , 1 Lcd Godzina ; ":" ; Minuta ; "." ; Sekunda Wait 1 Loop
hello, nie moge poradzić sobie z tym układzikiem. dziwnie się zachowuje, nie wiem gdzie robię błąd. Polega on na tym że odczytuje wartosć sekund, minut i godzin. Sekundy odczytują sie bez problemu, natomiast wartość minut i godzin jest cały czas równa zero. Minuty nie zmieniają sie mimo że w rejstrze sekund nastąpi przepełnienie
Witam, Próbuje w ramach nauki zbudować zegarek w oparciu ATMegę168 i PCF8583. Zbudowałem następujący układ: http://obrazki.elektroda.pl/4826984900_1... Napisałem do niego następujący program: [syntax=c] #include <avr/io.h> #include <stdio.h> #include <util/delay.h> #include "HD44780.h" #include "i2c.h" #include "PCF8583.h"...
Witam, mam mały problem: chcę odczytać minuty z układu pcf8583. Wartość tą odczytywałam co sekundę z przerwania INT0, tak samo jak sekundy, tyle że sekundy pokazuje mi dobrze, a minuty się zerują po 10 s. Jak zaczyna się kolejna minuta, to znowu ta dobra wartość mi się pokazuje przez 10 s. a potem się zeruje. Z czego to może wynikać?
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...
No dobrze, więc tak: I2cinit I2cstart I2cwbyte 162 I2cwbyte 2 I2cstart I2cwbyte 163 I2crbyte Sekunda , Ack I2crbyte Minuta , Ack I2crbyte Godzina , Nack I2cstop Godzina = Makebcd(godzina) Minuta = Makebcdminuta) Ale to dalej są dwie zmienne, tylko w przypadku kiedy będzie np godzina 8, to wartość zmiennej Godzina wynosiłą będzie 08. A ja chciałbym mieć...
Witam! Robię urządzenie, które ma być włączane i wyłączane o określonej godzinie i minucie. Czas bieżący pobieram z PCF8583. I tu mój problem: sterownik ma załączyć urządzenie o godz. 6:50 i wyłączyć je o godz. 20:00. Jak napisać ten warunek? (Mam kompletne zaćmienie... chociaż jestem zupełnie trzeźwy :) dim H as byte, M as byte ' godzina i minuta z...
Zapewne interesuje cię czas z dokładnością 1 minuta wystarczy? A może i godzina? Ustaw alarm tak by zgłaszał się co minutę (godzinę) w przerwaniu porównanie i zrób co należy.
Czyli wywalasz całe Godzina = Makedec(godzina) Minuta = Makedec(minuta) Sekunda = Makedec(sekunda) A przy wyświetlaniu samo skonwertuje, w symulatorze wyświetla dobrze czyli 1 = 01
Witam, Jestem początkujący w technice mikroprocesorowej. Napisałem program zegara z PCF8583. Na wyświetlaczu pojawia się godzina (godzina, minuta sekunda) ale widać jakby to skakało. Jak się przyjrzeć to widać jak po kolei pojawiają się cyfry. Czy jest jakaś możliwość przyśpieszenia odświeżania wyświetlacza tak aby pokazywana godzina sprawiała złudzenie...
Ewentualnie można odmierzać 5min timerem w powiązaniu z RTC który będzie decydował o czasie włączenia timera - to też będzie powiązane z RTC. Trudno będzie ci z RTC odmierzyć 5 minut jeżeli np będzie 58 minuta bo wtedy trzeba kombinować z warunkami. Użyłbym RTC do decydowania o porze włączenia timera a czas odmierzał wew. timerem.
Hej. Doczego podlaczyc linie A0? Do Vcc czy do masy i czym sie to rozni?
(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...
witam zamiast pcf8583 postanowilem wmontowac cos o mniejszych wymiarach i lepszych parametrach tj rtc m41t81 - "klon" pcf wyprowadzenia sa niemal identyczne, poza pinem przeznaczonym do baterii nie wymaga on rowniez trymetra do reg. kwarcu Moj problem polega na tym ze nie moge go zmusic do "startu" czytam note aplikacyjna http://www.st.com/stonline/books/pdf/doc...
Mam problem. Program pozwala wyświetlić tylko rok z przedziału 2000-2004. Jak zmodyfikować ten program żeby wyświetlić aktualny przedział lat. Dzięki za podpowiedzi. Ps.Szukałem i czytałem forum , wpisując do zmiennej Rok wartość od 00-04 zmieniamy lata od 2000 do 2004 ale nie znalazłem informacji co zrobić żeby zmienić przedział lat na np. 2004-2008...
Wyświetlacz wyświetla ten sam wynik :) ?? Nie zastanawia cię fakt, że godzina ma wartość 165, minuta 165, i sekunda 165 ??? Myślę że masz problem z komunikacją I2C, dodaj prostą opcję wyzerowania H, M, S (H = 0;, M=0; S=0;) i sprawdź czy rzeczywiście w PCF w rejestrach coś siedzi :). Potem zmierz napięcia na kwarcu , conajmniej jedno z napięć powinno...
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...
Dziękuję za zainteresowanie i już spieszę z odpowiedzią: oloam, zastrzel, uduś, powieś, podłóż na tory , nie wiem czemu to działa, ale to dla mnie było oczywiste dopóki słusznie nie namieszałeś mi w głowie :). Najpierw w kodzie pobierana jest wartość z PCF i chodzi zegar na nim oparty, same warunki wykonywania poleceń są na końcu. Rozumiem co chcesz...
Dzień tygodnia bez problemu, nawet informacje, czy czas jest letni, czy zimowy. Jeśli na początku na początku podpiąłeś $lib "dcf77.lbx" to zostały zdefiniowane zmienne to w Sectic daje [syntax=basic4gl] Sectic: Strtime = Time$ ' z ciagu czas Bsec = Time(strtime) ' oblicz sekundy Strdate = Date$ ' z ciagu data Bday = Date(strdate) ' oblicz numer dnia...
Albo jestem za stary albo za bardzo zmęczony...jak komuś się chce pokombinować to wklejam trochę kodu..może z tego chaosu zrobi jakieś logiczne MENU LCD.. // koniec pomiarów odczytu daty monitorowania napięć i innych procedur -:) unsigned char kanal=10; for(kanal=10; kanal<18; kanal++) { switch(kanal) { case 10://czasu...
Pin INT w PCF jest typu otwarty dren. Potrzebujesz więc rezystor podciągający.
Problem może być związany z rezonatorem 32,768kHz. Dobrze byłoby pomierzyć właściwą częstotliwość. Może być on uszkodzony lub źle (ale aż tak?) dobrany kondensator - zwykle 33pF. :wink:
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)...
a może tak: [syntax=c] //odczyt czasu i zapis w odpowiednich zmiennych danaPCF8583 = PCF8583_read(PCF8583,godziny); czas[0] = (danaPCF8583 & 0b00110000) >> 4;//dziesatki_godzin czas[1] = danaPCF8583 & 0b00001111; //godziny danaPCF8583 = PCF8583_read(PCF8583,minuty); czas[2] = danaPCF8583 >> 4; //dziesatki_minut czas[3] = danaPCF8583 & 0b00001111; //minuty...
Spróbuj: ...... .... cls Lcd......... Watms500 Dodano po 1 I2Cinit raczej niepotrzebne.
jesli przerwanie zakloca ci transmisje i2c to masz cos nie tak bo to transmisja synchorniczna i nawet jesli dana przestanie sie wysylac na kilka minut a potem sie wznowi to bedzie ok.
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 :)
Witam! Tak ma wygladać main: #include <avr/io.h> #include "pcf8583.c" #Twoje pliki int main(void) { char mini[8]; twi_init(); glcd_setup(); // sprawdzenie lini sterowania LCD glcd_init(); // uruchomienie wyświetlacza LCD glcd_clear_text(); // wyczyszczenie całego tekstu glcd_clear_graph();...
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...
Witam, napisałem prosty program obsługujący układ rtc PCF8583, wszystko działa niby poprawnie jednak gdy licznik sekund dochodzi do 59 i zwiększają się minuty przez 4 sekundy wyświatlacz LCD pokazuje krzaki w postaci FF i jakiś cyfr, po 4 sekundach odliczanie powraca do zamierzonego wyglądu. Czy jest ktoś w stanie mi pomóc ? Pozdrawiam https://filmy.elektroda.pl/83_1632655619...
Zmiennych globalnych nie ma ..., lokalnych nie ma. Kod pokazany jest inny od aktualnego. Więc gdzie są deklaracje ? Po co shit tu wciskasz chcąc byśmy ci coś powiedzieli. Dawno nikt mnie nie sprowokował do takich słów. Albert
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
Wykorzystujesz rejestr 0Fh w i wpisujesz do niego 0. Po 100 sekundach następuje przepełnienie i masz czas 1min i 40 sekund. Lepiej chyba będzie nastawiać alarm (np. jako presunięcie aktualnego czasu o kilka minut) niż korzystać z Timera.
ori acc,0 ; ustaw bit 0 acc zmieć na: ori acc,1 ; ustaw bit 0 acc Dodano po 2 Acha. I dla punktów tego nie napisałem.
ale mimo tego ze nie jest podlaczony powinien chyba odpowiedziec bitem ACK,tak? Dodano po 9 jeszcze jedno:kiedy zblizam rękę do kabelków łączących zegarek z prockiem,program przechodzi pierwszego while'a, wyświetla się "wysłany start". Po ponownym zbliżeniu ręki przechodzi kolejnego while'a i wyświetla ostatni "error". Musisz dać rezystory podciągające...
Miałem kiedyś tak, ale na ATmega8515. Ale PCF chodził 2x a nie 3x szybciej. Miałem tam taki układ z dwóch diod do podtrzymywania zasilania PCF z baterii. Okazało się po paru godzinach(na oscyloskopie) że napięcie zasilania PCF-a "skacze" i powoduje że kwarc 32kHz ma "garbaty" sygnał i PCF liczył te "garby" a nie częstotliwość podstawową. Pomogły dwa...
Zegar działa prawidłowo Czyli po włączeniu zasilania jest odczytywany PCF8583, na wyświetlaczu idą sekundy, minuty. Co by wykluczyło: "Czy adres sprzętowy PCF8583 pin3 A0 ustawiony jest prawidłowo - pin do masy ?" "Czy linie SDA SCL są podciągnięte rezystorami zewnętrznymi ?"
Dzięki za odpowiedzi. Pobawię się tym PCF8563 w wolnej chwili bo przysłali mi już te PCF8583 :) Oczywiście zamieniam na BCD minuty, godziny i sekundy, ale nie wkleiłem tego fragmentu na forum - jakoś wyleciało mi spod zaznaczenia ;) Pozdrawiam.
Tutaj problem polega na tym, że trzeba maskować sekundy, minuty i godziny. W PCF8583, jest to rboione automatycznie.
Witam if godz_od >=godz_PCF8583 and godz_do <= godz_PCF8583 then if min_od >=min_PCF8583 and min_do <= min_PCF8583 then reset portc.2 end if end if Dlaczego ten warunek miałby się nie zdążyć wykonać ? Sprawdzasz go z dokładnością do minuty, więc masz całą minutę na jego potwierdzenie i odpowiednie do wyniku działanie. Inna sprawa, że warunek...
Witam,mam do Was pytanie jak rozwiazać problem ustawiania godziny,minuty,sekundy w pcf8583,z wpisaniem do pcfka okreslonej godziny z poziomu Bascoma bo w tym jezyku pisze nie ma problemu ,ale jak zrobic ustawianie czasu za pomoca przycisków??Za wszystkie podpowiedzi bardzo dziekuje i pozdrawiam.
PCF8583 Coś nie tak, Uszkodzony ? Układ działa. Zczytuje godz., minuty, rok, miesiąc. Jest OK - wyświetla na wyświetlaczu. Jednak jak pobieram rejestr status (00h), control (08h), timer (07h), timer (0Fh) wszędzie mam wartość FFh twi_rep_start(Dev_Addr+TWI_READ)... twi_write(Control_Status_Addr); CTR_Status_00h=(twi_readAck()...
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...
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...
jeżeli masz jeszcze możliwość, to daj sobie spokój z tym 8583: to cholerstwo jest niedokładne, trymer niewiele tu pomaga. Dallas ma 8-pinowe RTC na I2C, zdecydowanie dokładniejsze. PCF8583 potrafi odjechać o kilka minut/miesiąc nawet w pokojowej temperaturze.
Wychodzi na to że timer przeładowywuje sie nie co 50ms a np: 49,5ms lub 49ms. Bedziesz musiał zweryfikować nastawy timera i metodą prób i błędów wyznaczyć najbardziej optymalny czas przeładowania. Niesety przy użyciu rezonatora kwarcowego 12Mhz do odmierzania czasu nie uzyskamy dużej dokładności. Do tego są specjalizowane układy, zegary czasu rzeczywistego...
Ale przecież ze zliczaniem impulsów wyrobisz się w jednej sekundzie, a impuls będziesz dostawał i tak co 1s. I nawet jeśli raz obliczenie sekund zajmie Ci tylko 1ms, a za drugim razem będzie trzeba zmienić godziny i minuty i zajmie to 12ms to i tak następny impuls z zegarka dostaniesz 1s później po poprzednim...
z porównywaniem sekundnika nie chciałem robić bo chcę się nauczyć obsługi przerwań a poza tym wyglądało by to mało profesjonalnie :p no cóż popróbuję i zobaczę co mi z tego wyjdzie :) Dodano po 54 zrobiłem narazie tak: $regfile = "m8def.dat" $crystal = 1000000 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3...
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...
Zobacz w pomocy polecenie GOSUB i CALL, bo pomieszałeś te polecenia. Dodano po 11 Do podprogramu możesz skoczyć poleceniem GOSUB i nie deklarujesz go. 'podprogram: Etykieta: 'etykiety kończymy dwukropkiem 'coś zrób Return Procedurę lub funkcję musisz zadeklarować i podać jakie parametry będą przekazywane. Jej treść musisz umieścić używając SUB...
Mam mały problem z PCF8583, układ śpieszy się kilka minut na dobę, a jak zamontuję kondensatorek (trymerek) pomiędzy zasilaniem, a kwarcem, to dostaje kopa i zlicza czas dwa razy szybciej. Schemat połączenia jak na rysunku: http://obrazki.elektroda.pl/7154003800_1... Kwarc jest malutki z zegarka elektronicznego (zegarek chodził dokładnie :))...
pcf8583 asembler biblioteka pcf8583 atmega pcf8583
ne555 timer przekaźnik vestel 17ips72 podłączyć kamera okablować
frequency mixers frequency mixers
Wymiana modułu CANbus w radiu Android w samochodzie Kod radia DWGM1003 w Chevrolet Spark 2013