Pin INT w PCF jest typu otwarty dren. Potrzebujesz więc rezystor podciągający.
jako ze jestem początkujący to po prostu robię kopiuj i wklej z innych przykładów ;) nie do końca rozumiejąc o co chodzi (C to czarna magia na razie jeszcze). dlatego przydałby ci się jakiś dobry kurs C ;) A w uproszczeniu jak zamienić SIGNAL na ISR - po prostu na razie zamiast SIGNAL pisz ISR tylko podawaj nieco inne nazwy wektorów tych przerwań....
Tak wygląda część z przerwaniem. Cały kod jest dość długi i działa poprawnie, tylko z tym mam problem. Nie jestem w stanie wykryć co robię źle. [syntax=c] int k = 0; volatile char licz=0; ISR(INT4_vect) { licz = 1; } ///////PĘTLA GŁÓWNA PROGRAMU int main(void) { sei(); DDRE &= ~(1<<PE4); PORTE = (1<<PE4); DDRA = (1<<PA7); PORTA...
Witam. Zrobiłem sobie zegarek na pcf 8583, wszystko działa ok tylko nie moge obczaić jak się w nim usawia alarmy a dokładniej przerwanie INT. Podłączyłem końcówke INT (pcf8583) do INT1 (M32) i po włączeniu przerwań układ cały czas wykonuje przerwanie (to normalne bo ciągle jest stan 0 na wejściu). Chce zrobić żeby pcf8583 dawał mi sygnał co 1godz Jak...
Timery lub lepiej alarm w pcf8583/8563 i przerwanie zewnętrzne
Witam Wszystkich Serdecznie Czy ktoś może mi podać konkretne nastawy Control/Status Register i Alarm Control Register, ewentualnie inne rejestry + czynności do wykonania, aby zegar PCF8583 zapodawał przerwanie na wyjściu INT co 15 minut? Czytam genialnego pdf-a po raz sześćdziesiąty, i straciłem już cierpliwość! Będę wdzięczny za pomoc. Pozdrawiam Mariusz
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...
mam problem z zegarem na pcf 85853P. jest od podłączony do 89s52. na wyświetlaczu zamiast czasu pokazuje tylko FF. program jest ok, dla testow wgralem znaleziony w sieci, piny w programie pozmieniane pod moj ulkad. Ten pcf podczas normalnej pracy wysyła chyba jakiś sygnał z pinu 7, ale gdy mierze go woltomierzem, to nic nie wykazuje, zmieniałem juz...
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. 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"...
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...
Hej. Doczego podlaczyc linie A0? Do Vcc czy do masy i czym sie to rozni?
Witam, wydawało mi się, że nie powinno dziać się nic dziwnego przy takim prościutkim zegarku jak PCF8583. A tymczasem pojawił mi się problem, którego nie mogę jak narazie "przeskoczyć". Mam prośbę czy ktoś może potwierdzić czy mój tok myślenia i pracy z tym scalakiem jest zgodny z tym co piszą w nocie? otóż przy starcie programu zacząłem robić inicjalizacjęPCF'a...
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ć?
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! Zastanawiam się jak prawidłowo korzystać z przerwania z układu RTC, chciałem użyć tego przerwania do sczytywania czasu co 1s z RTC po twi ale wydaje mi się że to nie jest prawidłowy sposób, na dany moment mam coś takiego: [syntax=C] ISR(INT0_vect) { uint8_t bufor[4]; TWI_read_buf(0xA0, 0x02, 3, bufor); pfctime.s=bcd2dec(bufor[0]); pfctime.m=bcd2dec(bufor[1]);...
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. Mam prośbę czy mogby mi ktoś wytlumaczyc, albo chociarz przetłumaczyć kawalek dokumentacji zamieszczony poniżej. Moj angielski jest za cienki. The PCF8575 provides an open-drain interrupt (INT) which can be fed to a corresponding input of the microcontroller (see Figs 9, 10 and 12). This gives these chips a kind of a master function which can...
http://obrazki.elektroda.pl/7884479900_1... Czy może ma ktoś pomysł na zegar RTC PCF8583, gdyż walczę z programem od kilku dni i nie mogę sobie z nim poradzić. Zrobiłem sobie zegarek na w.w. układzie i zamiast czasu wyświetla mi same znaki zapytania. Temperatura jest wyświetlana poprawnie. PCF działa poprawnie gdyż generuje na wyjściu...
Witam Problem polega na tym po nacisnięciu klawisza (pcf8574), atmega32 czyta kilka razy stan portu. Za pierwszym razem podaje dobra wartość a za ostatnim odczytem zawsze 255. Odczytuje port 2 lub 3 razy, chodź klawisz byl tylko raz naciśnięty. Kombinowałem juz z pętlami, zmiana czasu, nic nie dało zawsze za ostatnim odpytaniem port jest 255. kod '---------------------------------------...
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, Będąc na tym forum od ponad ośmiu lat, głupio mi trochę pisać ten post (szukajka nie do końca zawsze pomaga). Wcześniej nie potrzebowałem korzystać z zegarka PCF8583 i mam teraz zagwozdkę. O co chodzi? Robię przygotówkę do projektu gdzie na karcie SD będą tworzone katalogi i pliki chronologicznie (typowy loger). Stąd potrzeba zaprzęgnięcia do...
Zbudowałem system uP 89c4051 i układem zegarka pcf8583p oraz wyświetlaczem lcd. Program do obsługi który napisałem działa tak jak powinien zapisuje do zegarka dane czasu do nastawy aktualnej godziny. Odczyt danych z zegarka też działa prawidłowo. Problem jest taki że układ PCF stoi w miejscu, pokazuje godzinę sekundy i minuty i stoi w miejscu. Dopiero...
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, mam zrobiony zegar czasu rzeczywistego pcf8583, wykorzystuje przerwanie pcf-a od timera, chce wyjscie int podlaczyc do jednego pinu, pin w mikrokontrolerze co chwile sprawdzam. Gdy timer zlicza to na Int jest 1, wykazuje mi wtedy 4,8V, jak juz skonczy to wtedy ma 2,7V, mikrokontroler mi tego nie wychwytuje jako 0, probowalem przez rezystor dac...
Zegar działa na przerwanie zewnętrzne (pcf8583) więc może sobie czekać na przycisk ewjścia do menu w nieskończoność. Freddie Chopin czy mógłbyś swój pomysł wyrazić w kodzie ? Ja szlify graficzne kodu robie dopiero kiedy mi zadziała.
uzupelnienie do punktu c: w pcf mozesz ustawic godzine alarmu. wtedy to np. pcf wygeneruje ci przerwanie.
Tak, ale klawiatura jest częściej skanowana i trzeba odczekać jakiś czas aby DS przekonwertował temp. a to przerwanie które używam jest od PCF8583
przerwanie na INT da się zaobserwować zwykłym miernikiem.
Witam, mam problem z obsługą przerwania INT6 w Atmedze128. Układ działa prawidłowo, ale w przypadku gdy dostaje impuls z RTC PCF8583 na przerwanie INT6 to resetuje się. Tu jest kod obsługi tego przerwania: [syntax=c] /* * USTAWIENIA */ #define RTC_INT 6 #define RTC_INT_PORT PORTE #define RTC_INT_DDR DDRE #define RTC_INT_PIN PINE #define INT_RTC INT6_vect...
PCF8583 ma na wyjściu INT chyba Open Collector to znaczy że tylko zwiera do masy ... Interesujesz się elektroniką? Chodzi o to że PCF potrafi na tym wyjściu tylko zwierać do masy..ale musi mieć co zwierać.. więc albo musisz dodać tam zewnętrzny rezystor podciągający linię tak by normalnie panowało tam 5V a PCF na moment zewrze linię do masy...albo mozesz...
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ą.
Dzięki, mam jeszcze pytanie z innej beczki a mianowicie problem z obsługa przerwania. Config Pind.2 = Input Config Int0 = Low Level On Int0 Przerwanie A = 0 F = 0 Enable Interrupts Enable Int0 Do If Ok = 0 Then Waitms 50 If Ok = 0 Then Sound Buzer , 1 , 100000 Set Buzer Gosub Menu End If End If If F = 1 Then Cls Lcd "przerwanie" Wait 1 Cls...
Koledzy chyba rozwiązałem swój problem..... Więc postanowiłem podłączyć pod ATmega układ PCF8583 i jedno z jedo wyprowadzeń podłącze pod przerwanie Int0 które będzie występowało co 1s niezależnie od taktowania uC i napisanego programu. Co Wy na to, czy to dobre moje rozumowanie????
Korzystanie ze sprzętowych timerów do generowania taaaak długaśnego odcinka czasu 1Hz to po prostu istne marnotrawstwo by było niestety. Sam sobie podpowiadasz i dobrze, że masz na wyjściu PCF8583 generowany 1Hz - nic tylko podłączyć go pod jakieś przerwanie INTx i masz w procku 1Hz a jeszcze możesz go pięknie wykorzystać do odczytu czasu z PCF'a i...
Cześć, z reguły tak to się robi, że podłączasz odbiornik podczerwieni pod przerwanie. Jeżeli program byś pisał w bascomie to prawdopodobnie musi być podłączone pod PIND.2 Jeżeli obsługę RC5 będziesz robił sam to możesz podłączyć pod dowolne przerwanie. Ogólnie zasilanie takiego odbiornika podłącza się przez filtr RC np 100 ohm szeregowo i 10u elektrolit...
Nie boję się przerwań tylko mam zajęte oba :) ale chyba będzie trzeba układ zmodyfikować i uwolnić jedno przerwanie dla zegarka. Oglądam układy z Pcf8583 i DC13017 i one komunikują się chyba przez I2C a nie umiem znaleźć żeby generowały tylko impuls co 1 sekundę
hmm, a sprawdź samo przerwanie przyciskiem i powiedz jakie zbocze je aktywuje, może jakiś błąd w programie?
Witaj Kolego. Z zegarkami RTC philipsa to jest tak: 1. dobrze popatrz czy podłączyłeś przez diodę bateryjkę czy Ci jej nie rozładowuje. 2. Sam napisałeś procedurę I2C czy skopiowałeś od kogoś - dlaczego pytam - otóż jeśli masz jakieś przerwania i masz źle skonfigurowane te nóżki to w momencie kiedy Ty nie zdążysz ich przekonfigurować (mam na myśli SDA)...
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...
Witam! Mam taki problem że układ na bierząco podaje aktualną godzinę z pcf8583. Co 15 sekund pcf uruchamia przerwanie int0 i w tym momencie następuje odczyt i wyświetlenie temperatury. Program działa poprawnie do czasu aż za którymś razem po powrocie z przerwania na ekranie pojawiają sie krzaki ale funkcje z przerwania nadal działają. po dłuższej chwili...
Spróbuj ustawić w rejestrze 0x08 wartość 0xD0 a nie 0xA0. Przerwanie jest dostępne tylko gdy włączona jest funkcja alarmu tak podaje PDF. Pozdrawiam
czemu w nocie katalogowej atmela nic o tym rejestrze nie pisze (TCON) :( avr'y są lepiej opisane dokładnie nie wdawałem się w analizę rejestrów 2051 ale wydawało mi się, że nie ma on możliwości zaprogramowania na jakie zbocze ma reagować przerwanie :D
Ze spuszczoną głową przyznaję się do niedopatrzenia - faktycznie w trybie 0 aby uzyskać przerwanie z częstotliwością 625 Hz nie musimy zawracać sobie głowy rejestrem TL, wydaje mi się jednak że ta częstotliwość (okres 1,6 ms) jest bardziej kłopotliwa do dalszej "obróbki" niż okrągłe 20 Hz. Proponuję zakończyć temat rezonatora gdyż projekt tego nie dotyczy....
Witam...nic z tego nie wyszło rozwaliłem tyko w mak resztę programu....za chiny nie wiem jak obsłużyć tego PCF8583 datashety tylko namierzały mi w głowie a jakiegoś prostego przykładowego kodu w C nie znalazłem....menu jak się sypało tak sypie się dalej...nie radze sobie z tymi przerwaniami wychodzą cuda... posiłkując się elektrodą o dadatshetem napisałem...
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)
Łącze to na płytce stykowej, do układu mam podpiętą diode testową ktura miga jak dostaje przerwanie sprzętowe od pcf-a jak wyciągne kwarc to nie miga więc chyba jest dobry ten kwarc.
Zastanawiam się jak zrealizować cykliczne budzenie mikrokontrolera ATMEGA8 z jakiegoś "głębszego" trybu oszczędzania energii (inny niż idle)? Ta cykliczność to 1-2 min. Priorytetem jest minimalizacja zużycia energii (zasilanie z baterii). Z tego co wiem to: 1. Można użyć watchdog timerów (wdt). Czyli mikrokontroler budzony byłby co jakieś 2 sek. Trzeba...
Hmm pewnie wystarczy skasowac flagę, ale nawet wpisanie od nowa nastaw alarmu nie bedzie wielkim problemem. Co 8s przerwanie masz od watchdoga, który też jest konfigurowalny i moze pracować wywołując tylko przerwanie przy przepełnieniu. Co prawda pomyliłem się, w tiny26 przerwanie jest max co 2.2s, ale skoro i tak działa Cialarm więc nie musisz kombinować...
A to przerwanie to się tak samo włącza? Bo jakoś nie zauważyłem, żebyś an nie zezwalał. No, ale skoro pisałeś na podstawie książki ww., to już pytań nie mam... ;)
witam. Napisałem o to taki program: [syntax=basic4gl]On Int0 Przerwanie Nosave Enable Int0 Config Int0 = Change Enable Interrupts Config Portd.7 = Output Dim A As Byte Cls Do Locate 1 , 1 Lcd ; A; Loop End Przerwanie: A = A + 1 Toggle Portd.7 Return [/syntax] pin pd.2 mikroklocka podłączony jest do przerwania int PCF8583 lub pod zwykły przycisk zwierany...
Zgodze sie z moim poprzednikiem.. wystarczy zastosować (w at90s2313) Timer1, preskaler ustawić na 256 a wartość komparatora na $7A12. przy kwarcu 8MHz przerwanie będzie występowało równo co sekunde.. wtedy nietrudno napisać odpowiedni program.. przerwanie aktualizuje np 3 czy 4 rejestry z aktualnym czasem, a główny kod interpretuje takie dane..
Witam. Szukałem na elektrodzie podobnych tematów, ale jak ktoś się już o takie coś spytał to został zaraz odciągniety od tego pomysłu i proponowano mu robienie takiego czasomierza na uprocku. A ja muszę zrobić to na PCF8583. Już tłumaczę o co chodzi: Mam dosyć skomplikowany układ na ATmega128 (jeszcze nie jest dokończony, ale prawie :) ). Chodzi mi...
Juz doszedłem do tego co było nie tak. Tak jak mówisz mirek to nie błąd PCF'a lecz mój :D Powodem zawieszenia było czytanie magistrali w przerwaniu. W czasie czytania lub zapisywania następowało drugie przerwanie i tam kolejne czytanie lub zapisywanie. Wywalenie funkcji dotyczących i2c z przerwań pomogło :D
Nie wiem czemu taki projekt chcesz robić aż na ATMedze... Ja bardzo podobny, też na MAX6953 zrobiłem na ATTINY12. Działa bardzo dobrze. A Mega8 - marnotrawstwo pinów. Potrzebne Ci tylko dwa do I²C, dwa do zasilania, reset i ew. przerwanie. A na pozostałych możesz zrobić... nie wiem co.. :P Pozdrawiam Damian
Procka wybudza przerwanie z PCF8583 czyli zegarka. Oczywiście zegarek ma własną baterię. Jaki otrzymałem prąd to ciężko powiedzieć, gdyż mam procek w układzie z kilkoma rzeczami i wszystko lutowane SMD więc ciężko powiedzieć ile ciągnie sam procek. Ogólnie wyszło mi 10,9mA. W układzie jest rzeczony PCF, jest pamięć EEPROM I2C, wyświetlacz 44780 i 24...
Witam! Gdy zegar pracuje w trybie zwykłym (nie ustawiono żadnych alarmów) na wyjściu /INT co sekundę występuje stan "aktywny" - sygnał o częstotliwości 1Hz i wypełnieniu 50% Kolega pch wyraźnie napisał, że potrzebuje przerwanie co 100ms a nie co sekunde. Wyjście 1Hz to sygnał raczej jemu nieprzydatny :D (M.)
Oczywiście, że tak - po 10kΩ. Co ciekawe dodałem wszystkie możliwe przerwania I2C aby zobaczyć czy coś się dzieje. Przy wejściu w while, o którym była mowa po chili występuje przerwanie I2C_IT_ALERT. Zgodnie z reference manual, to jest jakieś przerwanie od SMBus, ale przecież nie ustawiałem magistrali w tryb SMBus... Przed inicjalizacją I2C (struktury)...
Przerwanie INT0 może włączaj dopiero w głównej pętli, nie wiem może jakąś flagę ustaw że wyłączałeś i jak w nią wpadnie to sobie włączy. Innego powodu nie widzę
Zasadniczy błąd, jeśli chodzi o przerwania. RTC PCF8583 posiada sprzętowe wyjście przerwania. Co sekundę podaje na nie sygnał. Zatem podłączamy je do jednego z pinów obsługujących przerwanie sprzętowe w procku i to on się martwi co ma zrobić i kiedy. Nie ma potrzeby wykorzystywania Timera procka. PORADA Nigdy nie wykorzystujemy dowolnych pinów procka...
Próbowałem to rozwiązanie ale rzeczywiście jest to chybiony sposób. Chciałem zrobić rejestrator temperatury który zapisywałby na kartę pamięci co 5min temperaturę i godzinę. Wszystko już mam oprócz zegara. Teraz wymyśliłem aby procesor (atmega328) była również zegarem. Ale nie wiem czy da rade tak zrobić. Timer1 mam zajęty. Na timerze0 chciałem generować...
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...
1. Kod mógł nie działać prawidłowo, bo zajęty mikrokontroler mógł zwyczajnie przegapić równość minut. Pytanie co ile sprawdzasz czas? Można by ustawić jakieś widełki zamiast konkretnej godziny. 2. Najlepiej wykorzystać alarm zaszyty w RTC i wyjście INT. Postępujesz następująco: - ustawiasz 1 alarm w RTC. Konfigurujesz przerwanie zewnętrzne i mikrokontroler...
Oczywiście że tak! A tyle razy czytałem pdf'a.... Drugi błąd tkwi w zapisie 10sek do adresu 15. Pamiętałem wszędzie o BCD zapominając, że powinno być nie 10 a 16 (B00010000). Czyli reasumując: zapis ustawień timera adres 0 <- 4 (ustawiony bit 3 włącza timer) adres 7 <- 0 (zerowanie na wszelki wypadek licznika - tu układ zlicza sobie impulsy) adres...
Mam w projekcie Atmegę128 + PCF8583 + kilka układów I2C (3xADS1110, AT24c1024), dodatkowo dołaczam dwa moduły z Atmega64 każdy. Chcę, aby każdy z mikrokontrolerów odczytywał czas bezpośrednio z PCF8583. Teoretycznie arbitraż jest możliwy, ale u mnie to nie chce prawidłowo działać - zawiesza się komunikacja i programy "stoją". Do testów zostawiłem w...
Witam mam problem z chyba skonfigurowaniem przerwań w "C" do tej pory takie "zabawy" robiłem w bascomie ale tam to każdy potrafi ;) mam przerwanie int0 z pcf8583 w międzyczasie odczytuje temperaturę z ds18b20 no i .. właśnie jak uruchomiłem PWM zaczęły się problemy, układ czasami się resetuje lub zawiesza zacytuje fragmenty: dodam ze pdf czytałem wielokrotnie...
pcf8583 przerwać sekunda stm32 przerwać przerwać pcf8583 asembler
starsze laptopy volvo silnika wariować zegar
bateria macallister schemat podłączenia komory chłodnicze
Części do agregatu Yamaha ET600A - gdzie kupić? Jak wyłączyć ekran dotykowy w Chromebooku Lenovo 300e?