jak zrealizować programowo zapis czasu do PCF8583 otrzymanego z DCF-a? Tak samo jak otrzymanego z każdego innego źródła. Chociażby wymyślonego. Przecież Twój zegarek jakoś ustawiasz? Albert
Witam wszystkich. Mam problem z nastawieniem alarmu w pcf8583...próbowałem już różnych kombinacji i ciągle nic. Muszę zrobić budzenie procka przerwaniem int generowanym przez ową kośc. Pewnie robię coś nie tak...proszę bardzo o kawałek kodu (najlepiej w bascomie) nastawiającego alarm. ps. kość jest sprawna - datę i godzinę ustawiam i czytam.
Zumek: dlaczego nie może działać? Oto te makra: /* konfiguracja i2c */ #define I2C_DDR DDRD #define I2C_PORT PORTD #define I2C_PIN PIND #define I2C_SDA PD1 #define I2C_SCL PD0 Nie można tak definiować? Definicje są jak najbardziej prawidłowe , ale kod jest do ... kitu :( Przeanalizujmy poniższy fragment: void i2c_wbyte (uint8_t dana) {...
ja w swoim kompie pokładowym mam zasilanie z 78l05 i tyle jest też GOLDCAP bo często wyciągam kompa do upgrade oprogramowania i nie chce mi sie co chwile ustawiać zegarka :)
Witam 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, Próbuje w ramach nauki zbudować zegarek w oparciu ATMegę168 i PCF8583. Zbudowałem następujący układ: 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" uint8_t godz, min, sek, hsek; uint8_t dzien, miesiac;...
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...
Chciałem uzyć RTC jak w temacie. Wszystko pieknie i ładnie tylko ze jest jeden problem nie wiem czemu ale ukłądzk ten zlicza 2x za szybko (tzn incrementuje minute co 30s). Uzyłem nowego kwarcu 32,768KHz Umieszczem lisning programu w Bascomie.Dziwne jest to ze zegarek chodzi akurat 2 x szybciej, gdyby był kwarc uszkodzony to raczej by wcala nei działało...
witam ja odczytuje z pcf8583 tą procedurą (co prawda układem atmega8, ale atmega16 różni się ilością wyprowadzeń, natomiast rejestry sterujące są takie same): //0x03 - odpowiada minutom? -> tak co do pytania Program się zapętla. Najprawdopodobniej przy tej linii: Kod C while((TWCR&(1<<TWSTO))); W funkcji TWI_stop(); -> przeanalizuj procedurę...
No powiedzmy ze rozumiem ale po wpisaniu np 0x98 nie odlicza 2 sec tylko za pierwszym razem dolicza do 2 s a pozniej 100s. I o co chodzi. Dodano po 1 Dobra z timerem dalem sobie spokoj bo i tak nie weim jak to dziala :( Zacznijmy sie bawic alarmem Poprostu nie chce dzialac Moje ustawienia: 00h pcf8583SetAlarmEnable(0x0C); 08hpcf8583SetTimer(0x90); 0Chpcf8583SetAlarmHour(0x00);...
Na początku chciałem się serdecznie przywitać, to mój pierwszy post... Jestem bardzo początkującym programistą avr'ów i natrafiłem pewnie na bardzo prosty do rozwiązania problem, lecz samemu chyba sobie nie poradzę: Robię klasyczny zegarek na atmedze + pcf8583, schemat poniżej: Korzystam z gotowych bibliotek rklibavr. Symulacja w programie proteus....
Program przekopiowałem już toczka w toczkę z płyty dołączonej do książki, oczywiście zmieniłem pod moje podłączneie do procesora ukłądu pcf8583 ale nadal nie wywołuje przerwania ten układ i nic nie mogę z niego zczytać. Jak sprawdzić czy czasem w jakiś sposób nie uszkodziłem tego układu? Jedyna różnica przy podłączniu odbiegająca od książki to nie podłączone...
Używam zegara PCF8583, działa mi jego obsługa itp, natomiast mam problem z jego przerwaniami. Układ jest skonfigurowany by generować przerwanie co 1s, po którym procesor ponownie ustawia odpowiednie flagi w zegarze, bowiem samo przerwanie jest jednokrotne. W celu inicjalizacji przerwań od zegara używam procedury: Sub Init_alarm I2cstart 'generate start...
Oto wycinek kodu odpowiadający za odczyt i zapis zegara: Config Sda = Portc.4 Config Scl = Portc.5 Declare Sub Odczyt_rtc(sekunda As Byte , Minuta As Byte , Godzina As Byte) Declare Sub Zapis_rtc ... do Call Odczyt_rtc(sekunda , Minuta , Godzina) if Pind.3 = 0 Or Pind.2 = 0 Then Gosub Menu ... loop Menu: Call Odczyt_rtc(sekunda...
(at)GanzConrad - to całe urządzenie będzie zasilane z baterii, więc nie trzeba dodatkowego podtrzymania :D I racja - ledy źle wpięte (at)ATmegazord - jeśli chcesz COKOLWIEK zobaczyć na tym LCD to potrzebujesz napięcia ujemnego :D Do jego "wytworzenia" potrzebowałbyś jakiegoś inwertera napięcia (najlepiej scalonego - podpinasz wtedy tylko 2 kondki i...
Witam. Mam pytanie dotyczące PCF8583. Chodzi mi o odczyt dnia, miesiąca, dnia tygodnia i roku. Wiem, że dzień i rok są pod adresem 5 a miesiąc i dzień tygodnia pod 6. Dostęp do nich ustawiamy bitem w rejestrze kontrolnym. A czy da się jednocześnie odczytywać wszystkie te cztery wartości? Próbowałem odczytywać rok i dzień tygodnia a później ustawiałem...
Witam. Jestem w trakcie tworzenie sterownika do akwarium. Problem w którym się znalazłem trochę utrudnia mi dalszą prace. Problem polega na tym. W układzie zamontowany jest zegar czasu Rzeczywistego PCF8583. Zegar nastawiam za pomocą dwóch przycisków. Godzina: Cls Lcd "Aktualna godzina" While Przyciskok = 1 If Przycisk1 = 0 Then Incr Godz...
Witam. P otrzebuję wsadu do ATmegi8 zgodnego z powyższym schematem. Nie udaje mi się odczytać godziny z tego zegara, a tym bardziej nie mogę ustawić w nim godziny. Proszę o wszelkie pomoce. Rysując schemat wzorowałem się na tym : . Jednak nie potrafię z programu wybrać tego fragmentu, który odpowiada za obsługę PCF8583. Założenia programu: Godzinę...
Wygląda, że funkcje TWI_read_buf/TWI_write_buf są już dostosowane do 8583 i ustawiają startowy adres - jest on chyba przekazywany jako drugi parametr. Niestety pytający nie załączył tych funkcji w pokazanym kodzie. W takiej sytuacji może faktycznie działać nieco lepiej, jednak dlaczego czytane są tylko 3 bajty zaczynając od dziesiętnych częsci sekundy?...
Chodzi dokładnie o to, że buduję mikroprocesorowy zegar czasu rzeczywistego z układem PCF8583 zasilany z 230V. Chcę aby po wyłączeniu głównego zasilania było podtrzymywane jedynie napięcie (np. z jakiejś baterii) na układzie PCF8583 tak, aby była pamiętana i aktualizowana godzina, żeby po przywróceniu zasilania na całym układzie nie trzeba było jej...
A ustawiłeś rejestr kontrolny PCF'a??? Zobacz Jest to rejestr 0 - proponuję zajrzeć do pdf'a: na stronie 6 jest opisany cały bajt z rozbiciem na znaczenie poszczególnych bitów statusu i sterowania. W uproszczeniu jeśli nie korzystasz z roku i dnia tygodnia to możesz wyzerować flagę maskowania najstarszych bitów w bajcie 05 (rok/dzień miesiąca) i 06...
Witam Na początek napisze ze jestem początkujący w C. "Napisałem" program który czyta czas i datę z PCF8583 i pokazuje to na LCD.I wszystko byłoby ok gdyby nie to ze dla testu na przerwaniu procesor ma generować krotki sygnał dźwiękowy co 1 sek. i "prawie" jest ok TYLKO raz na jakiś czas nie chce piknąć na mijającą sekundę, tak jakby gubił te sekundę....
Witam !!! Nie moge nic zapisać do żadnego rejsstru pcf8583p, układ został połączony do linii SDA i SCL mikrokontrolera i portu int0 + rezystory podciągające i kwarc 32,768 kHz. Przerwanie nastepuje standardowo co 1 s i tego nie moge zmienić bo nic do rejestrow pcf-a nie trafia. Ponizej przedstawiam listing kodu podejrzewam że wina jest w kodzie prosze...
Witam Przerobiłem kod z zegara z datą i termometrem pod RTC PCF8583, na RTC DS1307. Uporałem się z zapisem zegara do DS-a, ale za chiny nie można ustawić daty. Może ktoś zerknąć na ten kod i podpowiedzieć? może powtarzam cały czas ten sam błąd?. [syntax=basic4gl] $regfile = "m32def.dat" $crystal = 16000000 $hwstack = 64 $swstack = 64 $framesize = 64...
Witam!!! Od dłuższego czasu mam problem bo nie działa mi w ogóle zapis do rejestrów Pcf-a. Nie mam pojęcia co może być tego przyczyną może ktoś coś poradzi. Poniżej przedstawiam kod. [syntax=c] #include<avr/io.h> #include<avr/interrupt.h> #include<util/delay.h> #include<avr/iom8.h> #define TOGL PORTD ^=(1<<PD6) void TWI_start(void);...
Witam wszystkich, jest to mój pierwszy projekt opisywany na tym forum. Przedstawiam projekt mojego autorstwa, zegar z termometrem wyświetlający aktualną datę, godzinę oraz temperaturę z 3 czujników. Założeniem projektu było zbudowanie zegara wyświetlającego godzinę oraz temperaturę wewnątrz mieszkania, na zewnątrz, oraz wody w instalacji CO. Projekt...
Skąd wiesz, że przerwanie się nie wykonuje? Wnioskuję po tym, że wrzucając do przerwania instrukcję RTC_Read_Time() wyświetla się godzina 00:00, a jeżeli wrzucę ustawianie flagi to nic się nie wyświetla. Dalej - włącz podciąganie na linii przerwania. Znalazłem jedno miejsce w kodzie gdzie ten rezystor mógł być przypadkowo odłączany i poprawiłem, ale...
Zrobiłem jednak wybudzanie na timerze w pcf8583. Co 1 sek. lub co minutę (wtedy nie pokazuję sekund). Niestety oprócz kasowania flagi w rejestrze 00 (bit 0) trzeba ustawiać za każdym razem liczbę w rejestrze 07, który odlicza jednostki (ss/s/m/h/d w zależności od ust. bitów 0,1,2 w rej. 08 ) od ustawionej liczby do 99 Aktualnie zasilam z 3 akumulatorków...
Witam wszystkich, pewnie juz nie raz czytaliscie takie tematy...A tu kolejny ;) Przegladalem wiele tematow o komunikacji z pcf8583, wiele kodow z nich przetestowalem i nic. A tradycyjnie problem jest taki, ze przy odczycie godziny dostaje krzaki. Przypuszczam ze nie dziala komunikacja po i2c, bo nie ma znaczenia czy pcf jest zasilany czy nie, otrzymuje...
Też tak myślałem, ale albo coś mam w programie nie tak, albo sam już nie wiem. Bo w obu przypadkach wywołania przerwania (alarm, timer) ustawia mi zawsze tylko i wyłącznie bit 1 w rejestrze 0x00. Dodano po 18 Poza tym nie wiem czy robię to prawidłowo Ustawianie Timer'a: Zeruję rejestr 0x07, do rejestru 0x0F ładuję wartość którą ma odliczyć (chodzi mi...
Nie znam 100 sposobów bo po co, po prostu jak jest potrzeba to wymyśla się taki który będzie pasował do danej sytuacji, nie ma sensu uczyć się sposobów na pamięć. Jeśli rozumiem jak działa PCF8583 to nie jest problemem wymyślenie sposobu - to miałem na myśli. No więc np. tak jak napisałem wyżej. Podczas ustawianie roku np. ustawiając 2009, zapisuję...
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)...
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, Napisałem sobie taki programik w Bascomie pod PCF8583 i Atmege32 Wszystko funkcjonuje idealnie - czas, menu, nastawy itd, ale mam mały problem Otóż chciałbym wywoływać alarm o zadanej godzinie - nastawa w menu "Ustaw Alarm" Jeśli wpiszę tam odpowiednią godzinę i minutę to niestety alarm się nie uaktywnia? Dlaczego? Poniżej wklejam listing: [syntax=basic4gl]$regfile...
Zakładającego temat , patrząc na datę , sprawa już nie interesuje. Ale ..... PCF8583 może mieć adres 160/161 lub 162/163, ustawiane jest to nóżką A0 24C04 może mieć adres : 160/161 , 164/165 , 168/169 , 172/173 , ustawiane jest to nóżkami A1 i A2 Można sobie wybrać żeby się nie pokrywały. Adres układu jest czym innym niż adresy pamięci i ich stron
Witam, ostatnio zabrałem się za opanowanie interfejsu I2C (TWI). Staram się od dobrych 2 dni odczytać dane z układu PCF8583 (RTC). Napisałem gromadę funkcji do obsługi I2C, większość pochodzi z książki "Język C dla mikrokontrolerów AVR" więc sądzę że nie mają błędów. Pierwszym problemem jest adres jaki ma układ ma podłączone wejście A0 do zasilania...
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 sygnał 1Hz, po podłączeniu LED pod wyjście dioda co sekundę...
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)...
Zauważ tylko, że teraz nie konwertujesz odczytanych wartości z RTC i są ciągle w formacie BCD. Przy wyświetlaniu są one konwertowane tylko na string dla wyświetlacza, a same nie ulegają zmianie. Tak na dobrą sprawę musiał byś je konwertować PO wyświetleniu... ale po co.... Przy ustawianiu operujesz na zmiennych Ustaw_h itd, jeśli zegar pochodzi kilka...
Po podpięciu PCF mogę ustawiać / pobierać czas, niestety nie jest on w inny sposób zmieniany przez ten układ. w skrócie : PFC nie odmierza czasu. Kwarc 32k, kondensator 33piko. Zegar podłączony na płytce stykowej tak jak na schemacie, tylko pod ATmege8. Kod : w mainie w nieskonczonej petli jest pobierany czas i wrzucany na wyswietlacz. rtc.h [syntax=c]...
Temat nie dotyczy na wprost maszyny CNC, ale chodzi o trzyosiowy napęd oparty na mikrokontrolerze sterowany aplikacją na PC, docelowo RPi i ten działa wydaje się być najbliżej tematu. Jeśli jest jakiś lepszy dział do takiego zagadnienia to prośba o przeniesienie. Generalnie mam pomysł na całość, ale zostało kilka pytań bez odpowiedzi. Koncepcja jest...
Witam Jak napisac w programie tak aby przerwanie zewnetrzne od PCF8583 co 1s bylo przez mikrokontroler krótko widziane (obojetnie zbocze narastajace albo opadajace). Chodzi mi tu o ATmega32, w atmegach to sie jakosc inaczej robi niz pozostalych AVR. Prosil bym o krótki listing jak ustawiamy INT0 w ATmega i jak trzeba co musimy wpisac do PCF8583 zeby...
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)...
Witam, Chciałem sobie napisać program do obsługi PCF8583 i DS18B20. Popróbowałem trochę i wyszło mi coś takiego: [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 Config Portb = &B11111111 : Portb = &B11111111 Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2 , E = Portb.6 , Rs = Portb.7 Config Lcd = 16 * 2...
Nie sądzę, żebym miał błędy w programie (na 100% wiedzieć tego nie mogę). Poza tym jak nie ma baterii to zegar działa poprawnie, a takie rzeczy dzieją się tylko gdy dołączę baterię. Zumek mnie też to strasznie dziwi, bo np czasem wyświetli mi się coś takiego: __ ??? Ewidentnie to wina procka, że coś takiego się dzieje. No i w tym momencie cały program...
Akurat z C dla mikrokontrolerów to jestem cienias ale widzę, że w main.c jest zdefiniowana funkcja ustawiania zegarka a Ty jej nie wywołujesz. Od razu zaczynasz od odczytu a przecież zegarek PCF8583 po załączeniu zasilania nie chodzi i ma w rejestrach raczej przypadkowe wartości (o ile sobie dobrze przypominam). Jeśli chcesz sprawdzić, czy mam rację...
Tak się zastanawiałem nad problemem przedstawionym przez Jj_Johnys i mam takie dwie odpowiedzi. W urządzeniach czasu rzeczywistego z reguły jest możliwość nastawienia aktualnej daty i czasu, więc rozstrzyganie o tym czy układ policzy te lata czy nie chyba raczej nie ma sensu, bo po uruchomieniu urządzenia czas można nastawić ponownie:) Jak kupujesz...
Może zajżysz tutaj. Jest tam źródło w bascomie dla komputerka do Dewoo. Tam chyba znajdziesz to czego ci potrzeba. niestety ale w tym zrodle jest kod pod ds1307clock, probowalem go przerobic i godzina i data niby sie wyswietla ale mam caly czas problem z opcja ustawiania daty. pcf niby sam rozpoznaje ktory miesiac ma ile dni a tam to jest zrobione...
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,...
Też mam problem z tym alarmem. Próbowałem zrobić według wskazówek zawartych w poście i nic. Czy nie mógłbyś wkleić kawałka kodu który ustawia alarm w układzie PCF8583
Witam serdecznie! Ostatnio dużo zajmowałem się układami z RTC i duże utrudnienie stanowiło każdorazowe ustawianie zegarów po odłączeniu zasilania. Nie chciałem modyfikować i przy okazji psuć wyglądu obecnie posiadanych płytek testowych, więc postanowiłem wykonać na uniwersalnej płytce moduł zegarów z podtrzymaniem bateryjnym. Na płytce znalazły się...
Ustawiałeś zegarek?
Witam, Przedstawiam kolejny projekt z wykorzystaniem karty TeleVGA, tym razem jest to " 4- kanałowy termometr z zegarem RTC i wyjściem VGA " Projekt powstał przy okazji realizacji zlecenia na kontrolę temperatury na linii produkcyjnej. Jednym z wymagań była dobra widoczność odczytów dlatego wybór padł na monitor LCD. Po realizacji projektu postanowiłem...
Po pierwsze, jesli jeszcze nie masz, to pobierz sobie dokumentację pdf, tego scalaka, na przykład stąd: 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, pamiętając że chodzi o alarm, a nie o...
Rok jest przestępny, gdy jego numer dzieli sie przez 4, ale nie dzieli się przez 100, bądz też gdy dzieli się przez 400. To nam załatwia sprawę roku przestępnego, proponuję stosować algorytm tylko do pierwszego przecinka, reszta do wykorzystania w roku 2100. A teraz jak to zastosować w pcf-ie. Do tych dwóch bitów na rok ustawiać zero jeśli rok przestępny,...
1 sprawdz sobie obw. kwarca 2 jesli czesto programujesz, wyłaczasz układ to zadbaj aby po presecie procka dobrze nawiazac łacznosć (ja w krótkim czasie kilka razy wystawiam warunek stop dla i2c) ustawiam także odpwoeidnią wartosc do rejestru kontrolego. Może byc tak że przerywasz komunikacje proca z RTC i po ponownym odpaleniu układu RTC jest gdzie...
ja mam zewnętrzny ram więc mam pamięci pod dostatkkiem ale nie rozumiem idei Twojej propozycji. pozdrawiam PC Idea polega na licznikach softwarowych obsługiwanych w procedurze przerwania timera. Jeśli programujesz w innym języku niż asm, to nie przejmuj się tym, że napisałem coś o RAM, każda "zmienna" jest przechowywana w RAM, wystarczy ją zadeklarować,...
Mam jeszcze jeden problem w zwiazku z tym ukladem. mam ustawiony czas: godzina: 23.59 data: 05-04-2006 czekam 1 minute i godzina zmienia sie prawidlowo na 00:00 ale data ustawia sie na 06-24-2006. Nie wiecie czego to jest wina? Wszystko wyswietlane za pomoca jednej funkcji, wiec ona na pewno nie zawiera bledu.
Zapisz sobie podstawę roku w RAMie (w PCFie) z dokładnością do 4 lat. Czyli dla obecnego roku w RAMie wpisujesz 04, a w rejestrze roku 02. Przed wyświetleniem dodajesz te 2 liczby. Przy ustawianiu natomiast wpisany rok podziel na 4. Wynik wpisz do RAMu, a resztę dzielenia do rejestru roku w PCFie.
Witam wszystkich, potrzebuje wykonac cos w stylu kalendarza, ktory ma miec mozliwosc alarmu, tzn uklad ma pracowac normalnie, natomiast gdy przy sprawdzeniu daty wykryje, ze jest ona zgodna z ustawiona na alarm, ma wysylac sygnal do np elektromagnesu. Chodzi mi o to, ze ma to byc uklad pracujacy na normalnym zasilaniu, a gdy dostanie sygnal z zewnatrz(np...
W PCF8535 można zapisać tylko cztery wartości odpowiadające za rok. Tak jak napisałeś zapisuje się je za pomocą dwóch bitów co daje właśnie cztery możliwe do uzyskania wartości. Dlaczego ???? Dlatego że zapisujemy numer roku biorąc pod uwagę powtarzalność cyklu roku przestępnego co 4 lata. Wartość '0' zapisana jako wartość roku oznacza rok przestępny....
Witam Mam prośbę: poszukuję prostego programiku do odczytywania i ustawiania zegara (godziny, minuty, sek) na układzie PCF 8583, który pracuje na I2C i jest podłączony pod linie SDA i SDL Atmegi32. Chodzi głownie o przetestowanie układu. Język BASCOM. Z góry dziękuje za pomoc :) Pozdrawiam Wojtek
Witam! Chciałem się podpiąć do tematu. Również mam problem z tym zegarkiem. Flagi b0 i b1 zmieniają swój stan odpowiednio co 0.5s i 0.5min. Można to wykorzystać np. w celu mrugania znakiem pomiędzy liczbą godzin i minut (dokładnie chodzi mi o b0 0.5s). Problem polega na tym, że jeśli ustawię zależność świecenia się znaku ":" pomiędzy godz. i min. względem...
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,...
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.
Witam. Mam kłopot tego typu, że potrzebuje zrobić nastawny timer z dokładnością do 0,01s w zakresie od 40s-2min. Procesorek ma w kółko ustawiać na jednym z portów 1 co zaprogramowany czas. Port w czasie liczenia jest zerowany. Chciałem wykorzystać do tego celu PCF8583 w którym wybrałem funkcje timera. Wszystkie rejestry ustawilem jak trzeba i w rejestrze...
Nieszczęsny kod: Potwierdzam :wink:. Masz taki bałagan że niewiadomo co do czego. Musisz to wszystko sobie poukładać (zobacz jak to robią inni). Do ustawiania pinów portu wykorzystaj makra, nazwij funkcje zgodnie z tym co mają robić. I reaguj opdpowiednio na ACK bo po to on jest żeby weryfikować transmisję.
Witam. Mam takie pytania. 1. Czy maskowanie bitów roku i dnia tygodnia odbywa się tylko przy zapisie danych do RTC, a przy odczycie jest to gotowa juz zmienna do konwersji na wartość zrozumiałą do wyświetlenia Dnia i Miesiąca..?. Czyli czy dobrze rozumiem, że jak zamaskuję rok przy zapisie to nie odczytam już roku.? 2. Ustawianie maskowania odbywa się...
Przetestowałem kilka wariantów ale bez pozytywnych rezultatów. Włączenie bitu zezwolenia alarmu w rejestrze 00 sprawia, że wyjście INT zegara przestaje przewodzić i nie jest uruchamiane po przekroczeniu przez zegar ustawionego czasu alarmu. Jedyny przypadek gdy wyjście INT jest kluczowane sygnałem 1Hz występuje gdy bitu zezwolenia alarmu w rejestrze...
No dobra, przecież napisałem, że zacząłem od przekopania archiwum forum, a datasheet też przeglądałem. W końcu układ mam dobrze zmontowany, bo z podpiętym A0 do GND pokazuje mi 0 0 0 po wywołaniu Settime, a kiedy przepnę ten pin do zasilania nie pokazuje nic, więc nawet nie ustawia zegarka. Problem w tym dlaczego nie chce działać mimo tego, że zrobiłem...
Zapisuje tak godzinę w zegarku NIXIE. Format zapisu AB:CD, czyli 23:30 to A=2 B=3 C=3 D=0 Dlatego że godzina jest ustawiana na poszczególnych lampach po kolei, tak dla bajeru. Rem * * * Przeliczenie i zapis Do Pcf * * * H = A Shift H , Left , 4 H = H + B M = C Shift M , Left , 4 M = M + D I2cstart I2cwbyte 162 I2cwbyte 2 I2cwbyte 0 I2cwbyte M I2cwbyte...
OK ta odpowiedź rozwiąże mój następny problem: - chcę na wyświetlaczu wyświetlać zegar i temperature ale w funkcji odczytu temperatury mam "waitms 750" przez co zegarek się trochę gubi :( jak mam dokładnie wykożystać to wyjście INT ?? jestem jeszcze troche zielony bo to moje początki z mikrokontrolerami i bascomem :( Dodano po 5 zrobiłem tak: $regfile...
Mam problem ze zliczaniem czasu przez timer w układzie PCF8583. Na starcie programu ustawiam timer: I2cstart I2cwbyte 162 I2cwbyte 0 'rejestr kontrolny I2cwbyte &B00000100 'alarm aktywny I2cstop I2cstart I2cwbyte 162 I2cwbyte 8 'rejestr kontrolny timera I2cwbyte &B01000010 'zapis rejestru alarmu 'odmierzanie sekund ' włączony alarm timera I2cstop I2cstart...
Zrób sobie generator 1-5Mhz na HC14 na jakimś ogryzku płytki uniwersalnej jak masz takie "skłonności" do lekkomyślnego ustawiania fusebitów. Podczepiasz do OSC1 i w większości przypadków procesor startuje. KLA987 111111 ustaw dla ATmega32-zresztą w Bascomie masz podpowiedzi co to jest. A co z ATtiny? Dodano po 6 Ja ustawiam 16CLK+64ms jak start po resecie...
Witam serdecznie ! Od 3 dni siedzę nad poniższym problemem. Szukałem odpowiedzi na elektrodzie i na zagranicznych stronach. Niestety nie udało mi się znaleźć rozwiązania. Problem: Nie działa wyjście int na PCF8583 przy ustawieniu alarmu "clock alarm function" Dodam, że kiedy ustawiałem alarm na "timer alarm" do rej 0x08 wysylalem c2 i do rej 0x0f wpisywałem...
Witam, wiem, ze postów na temat tych układów jest masa, ale nie udało mi sie znaleźć rozwiązania. Problem: Zbudowałem układ, który ma pełnić rolę sterownika akwarium, wyposażony w rtc i czujnik ds18b20. Zaprogramowałem odczyt temperatury i czasu(sprzętowe TWI) oraz obsługę wyświetlacza. Aktualnie podczas pracy układu co 3 sekunda wyświetlana na wyświetlaczu...
Poprawiłem rezystory a napięcie będzie 6v lub 7,5 a mam jeszcze pytanie przydały by się jakieś przyciski do ustawiania zegara tylko jak je podpiąć a czy potencjometr jest dobrze podpięty i jakie te kondensatory mają być bo zastosuje dwa za stabilizatorem Przeczytaj uważnie posty a znajdziesz odpowiedzi. Rezystor źle przeniosłeś. Linie SDA i SCL PODCIĄGNIJ...
No jeżeli chcesz to połączyć tak, że bateria tylko do PCFa a sieć tylko do Atmegi to jak najbardziej tylko w momencie gdy będziesz chciał wymienić baterię, a zegarek będzie podłączony do zasilania sieciowego to pojawią Ci się bzdury na wyświetlaczu ponieważ będzie on próbował czytać poprzez TWI z PCFa, a PCF będzie wyłączony. Co prawda taka sytuacja...
Witam. Żeby się nie rozpisywać, mam taki kod do zegara: '----Zegar nixie LC-531----.' 'opis złącza ISP 'czerwony - "+" 'zielony - RESET 'biały - MISO 'niebieski - SCK 'brązowy - MOSI 'czarny - "-" '------opis podłączenia lamp----.' 'segmenty-sterowanie 74141: 'A-pb.0 'B-pb.1 'C-pb.2 'D-pb.3 'pozycje: 'godziny dziesiatki-pc.0...
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ę...
Wystarczyło dodać I2Cinit i układ działa poprawnie. wyświetla się czas. Teraz tylko ustawianie czasu dorzucić i zegarek gotowy. Temat uważam za zamknięty.
Wystarczy zajrzeć do datasheeta PCFa. Musisz odczytać jeszcze rejestr 6. W nim 3 najstarsze bity to binarna cyfra w zakresie 0 - 6 (teoretycznie to BCD, ale na jednym półbajcie nie ma to znaczenia), oczywiście przesunięciem bitowym wyciągniesz te bity. Musisz założyć, który dzień jest początkiem tygodnia, np. 0 - poniedziałek, następnie switchem wyciągać...
Witam ponownie. Mówią nie chwal dnia przed zachodem słońca...jak z jednym się uporałem to znów co innego mi mąci. Kłopot z wyborem gdzie zapisać nastawy dwukanałowego timera bo zmiennych jednocyfrowych jest łącznie 4x4 dziesiątki godzin , jednostki godzin , dziesiątki minut , jednostki minut osobno dla włącz osobno wyłącz razy dwa kanały.Ma do wyboru...
Witam, Ostatnio wpadła mi w ręce karta VGA sterowana poprzez złącze szeregowe SPI. A a ponieważ w domu poniewiera się kilka starych monitorów VGA to postanowiłem zbudować zegar wyświetlający czas i datę na monitorze VGA (bez udziału PC) Takiego zegarka na elektrodzie chyba jeszcze nie było. Wybór padł na popularne układy: procesor z rodziny AVR ATMEGA16...
Rzeczywiście pomogło, także wielkie dzięki. Teraz zostaje jeszcze obsługa daty oraz ustawianie za pomocą klawiatury. Widzę, że testowałeś te kody z książki, więc jeżeli możesz to zdradź mi też sekret czemu jeżeli podłączę czujnik temperatury to zamiast temperatury pokazuje mi 'error' wiem, że z powodu błędów w transmisji. Jeżeli odłączę pin czujnika...
Witam. Miał być w założeniu dwukanałowy czyli sterować wybrane w programie obwody np;z pierwszego kanału obwody 3 i 4 a z drugiego obwody 1 i 2 ale nie potrafiłem sobie z tym poradzić więc "przypisałem" każdemu obwodowi własny czas załączenia i wyłączenia z podziałem na dni robocze [od Poniedzialku do Piatku ] i dni wolne [sobota niedziela]. Chciałem...
Do programu ElektroTME dopisałem obsługę 2 czujników temperatury DS18B20. Czujniki podpięte pod portc.0, temperatura odczytywana w przerwaniach co około minutę. Wyniki są prezentowane na 4 pierwszych wyświetlaczach a na 2 ostatnich jest znak stopnia i litera C. Przewidziałem nawet przypadek ujemnych temperatur dla termometra zewnętrzengo co objawia...
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>...
Zerknij tu jak jest wykonywany odczyt z linii i porównaj [syntax=c] #ifndef _AVR_TWI_ #define _AVR_TWI_ #ifndef TWI_SPEED #define TWI_SPEED 100000 #endif void twi_init() { TWBR = (F_CPU / TWI_SPEED - 16) / 2 + 1; } void twi_start() { TWCR = (1<<TWINT)|(1<<TWSTA)|(1<... while (!(TWCR & (1 << TWINT))); } uint8_t twi_read_byte(uint8_t...
A numer miesiąca odczytuje się poprawnie? W rejestrze statusowym (offset 0) jest bit maskujący odczyt dnia tygodnia. Jeśli jest ustawiony to dzień tygodnia zawsze czyta się jako 0. Nigdzie w programie nie ruszasz tego rejestru, więc nie wiadomo co jest tam wpisane. No i jeszcze jedna uwaga - ten rejestr dnia tygodnia nie zmienia się po zmianie dnia...
Witam, dołączę się do tematu aby nie robić śmietnika. Mam taki oto problem. Zrobiłem początkowo program, który odczytuje mi rejestry godziny, minut, sekund i sekund setnych na wyświetlaczu LCD - sam odczyt, taki timer. Niestety gdy próbowałem zapisać coś do PCF'a np do rejestru minut liczbę 10 tak po tej operacji przestał działać licznik minut... Czyli...
Aż głupio i wstyd pisać o takim problemie, ale w końcu portal od tego jest. Krótko i na temat : Mam problem z uaktywnieniem clock alarmu + INT Timer Alarm działa prawidłowo, Clock alarm już nie. startuje zasilanie, PCF'ka zaczyna wszystko liczyć od "zera" czyli 00.00.01 00:00:00 CONTROL STATUS o adresie 0x00 ustawiam na 0x04 bit 3 zostaje aktywowany...
No i bardzo dobrze, masz: [syntax=c]DDRD = (1<<PD2); // ustawiasz kierunek pinu jako WEJŚCIE PORTD = (1<<PD2); // podciągasz wejście wewn. rezystorem do VCC GICR = (1<<INT0); // zezwalasz na przerwanie INT0[/syntax] tylko pozbyłem się tych brzydkich makr _BV(), których osobiście nie cierpię ;) ale jak się uprzesz to oczywiście możesz...
Witam! Problem polega na tym że chociaż użyłem zmiennej volatile nie nastepuje jej zwiększenie w przerwaniu a przez to wykonanie pętli if. w czym może być problem? Dodano po 46 rozwiązałem to poprostu trzeba było wsadzic petle if w nieskończoną pętle while
Witam Od dawna przymierzałem się do zbudowania zegara nixie na sześciu lampach. W internecie jest sporo takich projektów, jednak większość z nich nie odpowiadała moim założeniom. Postanowiłem więc zaprojektować i wykonać zegar od podstaw wykorzystując podzespoły, które miałem pod ręką. Założenia Projektując układ kierowałem się poniższymi założeniami:...
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...
Tak i nie :) mam tak ustawione TWBR, że nie potrzebuje preskalera. Wymieniam PCF może to da jakiś efekt... Bo tak logicznie mysląc jeżeli by TWI nie działało to by się nie komunikowało z pamięcią. A wiem że pamięć działa bo napisałem szybki programik co zapisuje, a potem odczytuje i wyświetla na LCD. Pozdrawiam o dziwo jak wysyłam do PCF jakąś wartość...
1. Umieść kod w znacznikach odpowiednich dla tego forum. 2. Sprawdź za pomocą komunikacji szeregowej/diodek przy jakim zestawie danych i w którym miejscu kod się zawiesza. 3. Na pierwszy rzut oka: a) nie konfiguruj DDRC i PORTC dla bitów PC0-1 (linie SDA i SCL) - zostaw na tych bitach domyślne zera b) Spróbuj takiej inicjalizacji TWI zamiast swojej...
Opierając się na jakimś kodzie znalezionym w googlach udało mi się wyświetlać czas w formacie HH:MM:SS i ładnie wyświetla, ale niestety nie potrafię zrobić ustawienia godziny za pomocą przycisków. To co jest napisane w tym kodzie i niby ma ustawiać czas, to nie działa w ogóle. Możecie mi wytłumaczyć jak takie ustawianie godziny ma wyglądać i jak to...
Menu udało mi się zrobić jako skok do podprogramu i tam wszystko ustawiam, po czym wracam do głównej pętli i jest ok. Zrobiłem regulację jasności podświetlenia LCD za pomocą PWM. Regulacja ta jest zrobiona w zakresie od 0 do 250. Chciałbym to ustawienie zapisywać w eepromie 24C02. Tylko nie bardzo wiem jak to ma wyglądać. Czy to będzie tak samo zrobione...