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ń....
Co ile masz przerwanie od timera bo jak się domyślam stan klawiatury odczytujesz kilkadziesiąt razy na sekundę?? Napisze to po raz kolejny: Wywal odczyt po IIC klawiatury z obsługi przerwania!!! I rób to tak samo jak odczyt czasu w programie głównym na podstawie flagi. Po drugie po co odczytujesz za każdym razem czas z PCF'a??? Skoro masz przerwanie...
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...
Ale i tak masz stały wzorzec czasu, czyli o więcej niż 1s nie powinno się rozjechać... + - impuls/inkrementacja _ - bezczynność/brak impulsu ______+______+______+______+______+_____... - przebieg impulsu z zegara _______+________+_____+_____+________+__... - inkrementacje sekund i nie ważne ile by nie trwało przeładowywanie timerów i programowych liczników...
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...
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ć?
Witam, chcę zbudować zegarko-termometr i napotkałem na problem: niemogę sobie poradzić z przerwaniami co 1 sekunde :( chcę aby temperatura była odczytywana co sekunde ale nie mogę jej odczytać :( chciałbym aby ktoś pokazał mi jak ma wyglądać obsługa przerwań :) wyjście INT z PCF8583(32,768MHz) mam podłączone do atmegi pod INT0
Witam Oglądam sobie dokumentację do PCF8563 i brakuje mi w nim generowania przerwań (na pinie INT) co sekundę jak robi to PCF8583. Wolałbym nie używać pinu CLKOUT skonfigurowanego do pracy przy 1 Hz. Kiedy używam PCF8583 ATMEGA w przerwaniu zewnętrznym generowanym przez PCF odczytuje sekundy, a jak trzeba to minuty i ... tak dalej. W PCF8563 widzę teoretycznie,...
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
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)...
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...
Chciałbym dostać przerwanie od PCF po 15 sekundach. Więc ustawiam rejestry następująco: [syntax=c] PCF8583_write(0x00,00000100); PCF8583_write(0x07,0); PCF8583_write(0x08,11001010); PCF8583_write(0x0f,15); [/syntax] Pin PE4 jako ustawiam jako wejście i podciągam do vcc. Obsługa przerwania poniżej. Coś jest nie tak i zmienna zwiększa się przy każdym...
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)
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ę
Aktualnie kod jest nieco inny, ale sama logika komunikacji po I2C jest ta sama. Rekurencji nie ma, przerwań nie ma, zmiennych globalnych nie ma :-) Zresztą jak widać, setne sekundy są cacy, a nie są traktowane specjalnie :)
Zainspirowała mnie Twoja odpowiedź To jest niemożliwe. i jeszcze raz sprawdziłem wszystkie ustawiane flagi. Okazało się, że w procedurze inicjalizacji zamiast I2cwbyte &B11000010 'alarm timer 1s int powinno być I2cwbyte &B11001010 'alarm timer 1s int i sprawa rozwiązana - jest przerwanie równo co sekundę. Dzięki za podpowiedzi! Swoją drogą, dokumentacja...
Można by było spróbować tak: 1. Na pierwszym uC ustawić zegar 2. Zaprogramować tak, że po zmianie sekundy daje krótki impuls na jakiś pin. 3. W pozostałych dwóch stawić jeden z pinów INTx i w momencie wywołania przerwania zwiększać liczbę sekund. Wadą tego rozwiązania są możliwe zakłócenia indukujące się na przewodzie. Jednakże stosując zewnętrzne mocne...
Słyszałem o przerwaniach, ale trzeba by brać poprawkę na czas potrzebny do obsługi przerwania.Zauważ ze z każdą inkrementacją sekundy błąd stale rośnie. Kiedyś napisałem zegarek w BASCOMie właśnie z użyciem przerwań i po kilku tygodniach widać było wyraźne odchylenia, natomiast w zegarku z użyciem PCF8583 nie ma takiego problemu.
Można to rozwiązać np. tak : jeden licznik programowy może liczyć w górę na innym przerwaniu czasowym, resetowany do zera przez przerwanie bramkujące, przed tym oczywiście wartość licznika służyłaby jako wynik pomiaru do obróbki, a inny licznik programowy liczyłby czas (zmniejszając się do 0) - kiedy zaktualizować wyświetlenie wyniku pomiaru, a jeszcze...
Dzięki wszystkim za odpowiedzi. Poprawiłem schemat, mam nadzieję, że teraz jest ok. Proszę więc o ostateczne rzucenie okiem :) http://obrazki.elektroda.net/28_12851938... poza tym proponuję ci z marszu i bez zastanowienia wyjście INT z układu PCF8583 podłączyć do jakiegoś wejścia INTx w procesorze żeby później wykorzystać przerwanie odmierzane...
Dopisałem obsługę timer1 do programu z przerwaniem co 1s Przepraszam bardzo, zapomniałem o bardzo istotnej rzeczy. Mianowicie o przerwaniu z PCF co sekundę. Można właśnie tak to rozwiązać Nóżka 7 PCF8583 wysyła sygnał dokładnie co sekundę. Więc podłączając ją do ATmegi pod przerwanie zewnętrzne Otrzymasz impuls co sekundę bez potrzeby stosowania Timera....
Witam Jestem początkujący w technice mikroprocesorków i w programowaniu w c. Aktualnie męczę się z wpisaniem czasu do PCF. Przy próbie zapisu w momencie kiedy sekundy równe są 5 wyświetlanie czasu zamiera. Reszta układu działa, ale czas na wyświetlaczu pozostaje w formacie 00:00:05 Wzorowałem się na : http://www.elektroda.pl/rtvforum/topic13...
no wykonuje ci się wszystko bardzo wolno - ponieważ w procedury obsługi przerwań pakujesz sobie czaso-żerne procedury w tym te najgorsze czyli opóźniające. popatrz ile np u mnie zajmuje kod przerwania od zegarka PCF // przerwanie INT1 generowane jest przez PCF8583 co 1 sekundę // ustawiana jest flaga od której zależy wyświetlanie // czasu, daty, temperatury...
Tu masz rację TDV z tym trafieniem przerwania. Wiecie czym różnią się zwykłe banany od bananów ... (reklamowanej marki)? Tym samym czym programista od programisty przewidującego nieszczęśliwe trafnienia przerwań. Diabeł zawsze tkwi w szczegółach. Sam robiłem wiele rzeczy na przerwaniach i pomimo tego, że są bardzo potrzebne to zwykle zdarzają się w...
DS musi mieć na końcu "wait 1" Z tego co pamiętam to czas pomiędzy zapytaniem czujnika a odpowiedzią ma wynosić co najmniej 750ms ale nie rób tego na instrukcji "Wait" ale w przerwaniu. Ja to robię tak, że w jednym przerwaniu (np. co sekundę) najpierw odbieram dane z DS-a, wykonuję obliczenia temperatury i od razu wysyłam do czujnika "zapytanie". W...
Już sie poprawiam, układ to popularny pcf8583 standardowo połączony i dołączony do atmegi 8 do portów sda i scl, zastosowałem rezystory podciągające. Nie dostaje przerwania TWI_vect niewiem dlaczego. Prosze o jakieś sugestie. Dzięki
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...
Na szczęście dla mnie w tym projekcie nie jest istotne czy wpiszę 12 czy 16MHz bo z opóźnień procka praktycznie nie korzystam, więc czy wait 1 będzie trwał 1 sekundę czy 1,2 jest mało ważny, a wszystko co związane z czasem robię na PCF8583 i przerwaniach alarmu. Znaczy pracuję na godzinach i minutach a nie na ms czy us. Projekt dość (zegar PCF8583,...
Jako przykład podam program dla 8051 napisany przeze mnie w asemblerze realizujący funkcje zegara: - obsługa 4 wyświetlaczy 7seg poprzez rejestry szeregowe 74595 - obsługa 5 przycisków przez rejestry 74165 - obsługa przerwania do generowania dźwięku "piknięcia" przy naciskaniu przycisków, czasu lampki i synchronizacji DCF, wszystko na jednym liczniku...
mozna to rozwiazac na kilka sposobow... jeden z nich: to zalezy jak odmierzasz sekunde, jesli masz timer ustawiony np na 0,2 sekundy i w przerwaniu timera zliczasz liczbe przerwan, to mozesz skanowanie klawiatury wrzucic w obsługe przerwania, wtedy na kazdym przerwaniu bedzie to odczytywane jako jedno wcisniecie klawisz, wiec jesli masz timer na 0,2...
Jak uzyskać prawidłową incrementację "X"przy korzystaniu z sekund z PCF8583 Kod: If S=00 Then Incr X End If W momencie pojawienia się zer na LCD, X narasta wielokrotnie. Przy wstawieniu Wait LCD ma zacięcia. Albo umieścić to w procedurze przerwania od tego układu
Witam, Mam nadzieję, że piszesz programy z wcięciami a tutaj tylko przypadkowo wkleił ci się kod bez wcięć - bo masakrycznie się to czyta - nie tylko komuś ale i samemu można się pogubić na maxa, ale do rzeczy .... widzę, że odczyt robisz sobie w jakiejś tam procedurze i ok - skaczesz do tej procedury gdy twoja zmienna Byt = 0 . I jak się patrzy na...
Witam, Do uC jest podłączony DS1820 oraz DS1621. Czas konwersji czujnika (DS1620) to poniżej 350Ms (na oko). W obu przypadkach sprawdzany jest faktyczny a nie ustawiony na sztywno czas czas konwersji (np. 750ms w przypadku DS1820). Temperatura jest próbkowana co 1 sek. W większości przypadków starcza. Jednkże, czasami wynik jest przekłamany z DS1621....
Jeżeli Ci PCF niepotrzebny/oszczędzasz na płytce to zerknij do DSa zamiast do poradników. Tam jest to logicznie wszystko wytłumaczone. Ja podpowiem, że możesz uruchomić timer w trybie CTC z preskalerem np 8, który będzie generował przerwania gdy doliczy do 10 000. To da odcinek czasu 10ms. W przerwaniu możesz inkrementować zmienną odpowiedzialną za...
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...
Witam. Napisałem taki program w bascomie do obsługi RTC PCF8583. Chcę abym mógł go nastawiać z pilota. Niestety ale nie wychodzi mi to za bardzo (po wciśnięciu klawisza pojawia się tylko kursor i program dalej nie chce iść). Pod Int0 podłączyłem przerwanie od PCF'a a pod Int1 odbiornik Rc5. Odmierzanie czasu jest poprawne. Tutaj kod: $regfile = "m32def.dat"...
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...
5V stosowałem testowo Całość zasilam z baterii 3V wtedy też procek i pcf pobiera mniejszy prąd. Co 8 sek przerwaniem, ale jakim ? Timera procka ? Udało mi się ustawić alarm. Zmieniłem kolejność (chyba to była przyczyna) wpisów do pcf. Najpierw wpisałem sekundy alarmu a potem ustawiłem rejestr 00 i 08. Jeszcze pozostał mi problem, że alarm wywołuje się...
Podłącze się do tematu. Piszę funkcję zapisu na LCD godziny, daty z PCFa. Mój sprzęt: Atmega128, sprzętowy TWI, przerwanie z PCFa, LCD 240x128, AVR studio 4 + WinAVR I zastanawiam się czy co przerwanie (1s) mam napisać funkcję odczytującą całego PCFa (wszystkie potrzebne rejestry) i zapisanie tego na LCD, czy może inaczej. Właśnie tak zrobiłem, ale...
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. Na początek dla jasności..przekopałem elektrodę..zagłębiłem się w datasheta...ale to okazało się za mało by PCF8583 zaczął wreszcie gadać z moją atmegą 32. Nie potrafię dojść dlaczego kompilator się pluje o zbyt wiele definicji w funcjii TWI_read której definicja jak wyczytałem z postów jest poprawna. Proszę pomóżcie bo ten program spać mi już...
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...
najlepiej zastosuj w układzie zegarek pcf8583. on daje impuls z wypełnieniem 50% co sekundę czyli mozesz zrobić odświeżanie wyniku co 0,5 sekundy. a jakiego wyniku a no takiego: podłącz przez negację 40106 (negacja ze szmitem) sygnał z wtrysiwacza czy co tam masz na wejście przerwania. zdefiniuj timer jako timer 16bit ale bramkowany zewnętrznie. tzn...
Chciałbym nie obsługiwać programowo zamiany czasu oraz daty. Zależy mi abym raz ustawił datę i godzinę a reszta przebiegała bez użycia procesora. W chwili obecnej mam układ PCF8583 gdzie w/w operacje są realizowane programowo. W moim programie odczyt daty i czasu przez mikrokontroler realizowany jest tylko w chwili wystąpienia zdarzenia (zmiany stanu...
Witam !!! Nie działa mi zapis do rejestrów pcf8583. Układ połączony standardowo z rezystorami podciągającymi kwarcem 32,678 kHz. Dioda podpięta do PD6 zamiast migać jak przyjdzie przerwanie swieci cały czas czasem widać tylko tętnienie swiatła diody. Co sie dzieje ? [syntax=basic4gl] Config Scl = Portc.0 Config Sda = Portc.1 Config Portd.2 = Input Portd.2...
Witam forumowiczów. Siedzę od jakiegoś czasu przy zegarze PCF8583 i VFD CU20029SCPB-25A. Napisałem do niego obsługę 2 termometrów na DS18B20 i pilota RC5. Wszystko działa poza, wybudzeniem procesora z POWERSAVE. Nie mogę sobie z tym poradzić. Nie mogę znaleźć konkretnego przykładu. Po naciśnięciu przycisku na pilocie ma się uśpić Atmega, i tak robi....
sprowadzać czas do jednej liczby całkowitej (nie musi to być od razu coś na kształt czasu UNIX'owego znanego choćby z serwerów NTP - po co?) ad.1 - w tym celu można przygotować sobie prostą funkcyjkę np: uint16_t get_time( uint8_t hh, uint8_t mm) { return (hh*60) + mm; } Rozwiazanie to jest niepraktyczne. Najlepiej przydaje...
(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...
Nie uruchamiałem alarmu na tej kości bo alarm zrobiłem sobie samemu w uC. Dzięki takiemu rozwiązaniu możesz bardziej rozbudować alarm i oszczędzasz pin, który najprawdopodobniej w tym przypadku będzie przerwaniem. No ale skoro chcesz kod... Rejestry alarmu wyglądają tak: 09H-rejestr alarmowy ułamków sekund 0AH-rejestr alarmowy sekund 0BH-rejestr alarmowy...
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...
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...
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...
Ja używam trochę innej koncepcji pomiaru czasu. Zawsze podstawą jest czas UTC lub CET ( przyjąłem że w sekundach od 2k) i taki czas jest odmierzany przez RTC Tylko na tym czasie operuję Oczywiście rozumiem wszystkie zalety takiego podejścia. Ale powiedz mi w jakim RTC odmierzany jest u ciebie ten czas UTC i w jakiej postaci ? Te procesory które teraz...
Jak dokładnie. Podaj odchyłkę w s na dobę. Jeżeli zależy Ci na niewielkiej odchyłce to rób na zewnętrznym generatorze i dzielniku, a procek będzie Ci dodawał sekundy minuty i godziny, i wyświetlał je na LCD lub LED. Jeżeli dopuszczasz większą odchyłkę lub więcej pracy w optymalizację czasu realizacji procedur (wyłącznie w ASM) możesz zrobić zegar stosując...
Zmagam się z odczytaniem czasu układu PCF8583. Napisałem krótki kod na podstawie instrukcji napisanych w manualu Atmegi, który ma odczytać wyłącznie wartość sekund. Problem jaki się pojawił to zatrzymanie programu na funkcji oczekiwania odbioru flagi przerwania po zakończeniu transmisji instrukcji startu magistrali TWI: [syntax=c]while (!(TWCR &...
Zajrzyj sobie do noty katalogowej. Tak de fakto ten układ jest poprany, bo nietypowo koduje informacje o dacie. Masz tu fragment mojego kodu powinien ci pomóc w rozgryzieniu problemu. To definicja i opis rejestrów PCF8583. 'Deklaracja rejestrów dla zegara czasu rzeczywistego PCF8583' Const Rtc_in_adres = 160 'Adres do zapisu danych A0 do GND Const Rtc_out_adres...
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ę...
Warunek >5 to 5km/h, jak mniej to L/h. If Wartosc_funkcji_byte > 5 Then Wartosc_funkcji_long_1 = Stala_wtrysku * 10 Wartosc_funkcji_long_1 = Wartosc_funkcji_long_1 * Czas_wtrysku_sek Wartosc_funkcji_word_1 = Wartosc_funkcji_long_1 / Wartosc_funkcji_word_1 Else If Czas_wtrysku_sek > 0 And Postoj = Czas_postoju Then Wartosc_funkcji_long_1 = Stala_wtrysku...
Rozumiem..fakt przesadziłem z tym kodem.....przepraszam......w sprawie wcięć to proszę o weryfikację czy tak ma wyglądać...to wyrwany z całości kawałek... //***** MAIN int main() { DDRA=0xC0; //jakieś ustawinie portów //***** LCD init LCD_menu init LCD_Initalize(); _delay_ms(200); //***** ADC init //***** TWI init while(1)...
Witam. Mam problem z zegarem na wyświetlaczach 7-segmentowych. Minuty po 09 wyświetla 16 zamiast 10, sekundy tak samo. Zawsze tak się dzieje, więc musi to być błąd w programie, ale ja już się poddałem, co może być nie tak. Config PortA = Output PortA = &HFF Config Portd = Output Portd = &Hff Config Portb = Output config portc.0 = output config...
Ok...ten częściowy kod jest nieco zmodyfikowany ale teraz też lista komunikatów o błędnych wywołaniach funcji jest dłuższa niż program... //######################################... //########## A T M E G A _ 3 2 ########## //######################################... #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include...
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:...
Ja z tego PDFa konfigurowałem alarm i otrzymywałem sygnał przerwania INT z PCFa. Zaraz zobaczę może sobie przypomnę jak się to robiło. Dodano po 12 Ustawić należy bit 2 rejestru sterującego. Należy podać adres układu, potem wpisać adres 0 potem wpisać wartość 00000100. I alarm jest aktywny. Oczywiście start i stop transmisji I2C należy wykonać. Wprowadzanie...
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...
Skoro program utyka w jakimś miejscu to znaczy że czekasz w pollingu na stan, który się nie pojawia. Po pierwsze dodałbym time out, który przerwie pętlę oczekiwania zanim układ zostanie zresetowany przez watchdog. Zapis nie jest w pętli, struktura programu wygląda tak: Skoro na magistrali nie ma innego mastera to należałoby wysłać ponowny warunek startu....
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...
#include <avr/io.h> #include <util/delay.h> #include <HD44780.c> #include <stdlib.h> #include <makra.h> #include <DS18B20.c> #include <twi.c> #include <avr/interrupt.h> #define zegar 0xA0 int przerwanie=0; void INT0_inicjacja(void) { MCUCR = 0b00000001; GICR = 0b01000000; } ISR(INT0_vect)...
Witam wszystkich, Otóż napotkałem następujący problem przy obsłudze wspomnianego w temacie zegara PCF8583. Godzina obsługiwana jest prawidłowo (stąd też wnioskuje, że metody konwersji BCD <-> DEC są ok). Najpierw zamieszczę kod, później opiszę problem: Odczyt: [syntax=c] { //-------- odczyt godziny--------------------------------- char a_s[3];...
Przepisałem kod ale TO TYLKO NIE FUNKCJONUJĄCY SZKIELET do wglądu.. [syntax=c] #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> #include <avr/delay.h> #include "i2c_twi.h" //********** funkcje konwersji char dec_na_bcd(char num) {return ((num/10 * 16) + (num % 10));} char bcd_na_dec(char...
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...
Witam http://obrazki.elektroda.pl/1906003200_1... Przedstawiony zegar nie jest niczym szczególnym i powstał z potrzeby ponad 6 lat temu. Choć nie jest to konstrukcja w pełni zasługująca na miano udanej jestem z niej zadowolony bo wciąż działa. Moja mama która najmłodsza już nie jest potrzebowała jakiś zegar. Chciała coś kupić jednak...
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! Od pewnego czasu usiłuje napisać program do obsługi zegara na pcf8583 i wyświetlaczach siedmiosegmentowych lecz bez efektu. Jest sporo tematów tego typu, ale większość zegarów realizowana jest na LCD. Główny problem polega na wyświetleniu czasu na wyświetlaczach 7segmentowych. Proszę o jakąkolwiek pomoc i podpowiedzi. Schemat układu: http://obrazki.elektroda.net/13_12708371...
Zainstalowałem AvrStudio7 , jest ok. Znalazłem część starego kodu ale to tylko szkielet jest niekompletny. [syntax=csharp] //**************************************... // NIXIE CLOCK //**************************************... #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h>...
Zapewne coś namieszałem bo nadal mam błędny odczyt [syntax=cpp] #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> #include "HD44780.h" #include "i2c_twi.h" //********** funkcje przetwornika ADC char buffer_n[8]; volatile uint16_t pomiar[6] __attribute__((section(".noinit"))); void inline SetAdcKanal(unsigned...
Bardzo dziękuje, działa jak trzeba. Teraz rozumiem, że logiczna kolejność jest najważniejsza - warunek zwiększania Menu_ustaw był nie taki jak trzeba i źle umieszczony. Na razie wyjście z programu zrobiłem na trzecim przycisku, ale trochę szkoda go marnować do tego, można na nim zrobić obsługę czegoś innego - w przypadku, gdy program nie jest trybie...
Witam. Chciałbym sobie wykonać zegar z tego tematu [url=http://www.elektroda.pl/rtvforum/to... ale chciałbym dodać do tego zegar RTC. Myślałem żeby użyć DS1307 lub PCF8583, do obsługi tego drugiego znalazłem taki oto fragment kodu: [syntax=basic4gl]Config Sda = P3.5 'konfiguracja linii SDA magistrali I2C Config Scl = P3.7 'konfiguracja...
Zrobiłem sobie zegarek na PCF8583..... i sa nastepujace problemy....nie chce zapamientac ustawionej godziny ani daty....timer zapamientuje prawidlowo....wiec nie wiem o co biega...no i jest jeszcze jeden problem....mianowicie...na wyswietlaczu czasami pojawiaja sie kszaki...zamiast godziny..jak to zlikwidowac???? O to program Config Lcd = 16 * 2 Config...
Mam problem. Buduję układ którego jedną z funkcji będzie zegarek. Nie chcę stosować układu PCF8583 gdyż jest zbyt drogi i posiada dużo nieużytecznych dla mnie rzeczy. Przeglądałem poprzednie topici o tym jednak nie znalazłem wystarczającej odpowiedzi.... Mikrokontroler jaki będę stosował to Atmega32, jednak chwilowo w celu testów program robię na Atmega8....
Konfiguracja DS1307 [syntax=basic4gl]'############# Konfiguracja DS1307 ############# I2cstart 'zerowanie bitu CH I2cwbyte 209 I2crbyte Pom , Nack I2cstop Pom = Pom And &B01111111 I2cstart I2cwbyte 208 I2cwbyte 0 I2cwbyte Pom I2cstop I2cstart 'wlaczenie przerwania co 1s I2cwbyte 208 I2cwbyte 7 I2cwbyte &B00010000 I2cstop 1wreset 1wwrite &HCC...
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...
Witam. Potrzebny mi jest zegar wyświetlający równocześnie czas lokalny i czas Greenwich. W tym celu próbuje napisać odpowiedni program ale mam problem z multipleksowaniem dwu wyświetlaczy LED każdy po sześć cyfr. Podstawą czasu jest PCF8583 a że mam akurat atmegę32 więc ją wykorzystam. Od razu mówię że orłem w programowaniu nie jestem i bardzo możliwe...
Mam problem z przełączaniem bitów Założenia programu są następujące Program przez określony czas ma włączyć 2 diody oznaczone Pompka1 i Pompka2 oraz wyłączyć Napowietrzacz po upływie czasu ma przełączyć tz: wyłączyć Pompka1 i Pompka2 oraz włączyć Napowietrzacz po upływie drugiego czasu znowu ma przełączyć. Niestety program nie działa dobrze Diody działają...
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...
Witam Mam problem z odbiorem sygnału rc5 a dokładnie buduję zegar na wyświetlaczu 7-seg w oparciu o atmege8 i układ pcf8583. Jak na razie wszystko mi działa i odczytuje czas i wyświetlam go lecz po dodaniu wierszy kodu programu odpowiedzialnych za odbiór rc5 program się wiesza i nic nie realizuje, a na wyświetlaczu są same zera... Nie mam już pomysłów...
[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...
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...
Nie udało mi się rozwiązać problemu z komunikacją z zegarem rtc więc, postanowiłem skorzystac z gotowego rozwiązania z książki Mirosława Kardasia, w której co prawda jest opisany PCF8583, ale w zasadzie jest on bardzo podobny do mojego PCF8563P. Po wgraniu programu, na wyśw. LCD i w terminalu nic się wyświetla... Pomyślałem że skoro ciągle nic się nie...
Witam. Gdzieś w tym kodzie popełniłem błąd ale pomimo kilkukrotnego sprawdzenia nadal nie potrafię odkryć czy błędnie zapisuje dane czy błędnie je odczytuje...może ktoś mógłby wskazać "usterkę" w tym programie.? [syntax=c] //======================================... int main() { DDRB=0x01; //podświetlenie LCD (reszta...
http://obrazki.elektroda.net/39_12386675... Walentynkowy zegar Zastanawiałem się co by tu zrobić dla mojej połowicy… siedząc w kuchni chciałem sprawdzić która jest aktualnie godzina. Patrzę na elektroniczny zegarek w kuchence i co? Brak godziny, bo akurat przed chwilą niechcący wywaliło mi bezpieczniki. Tak się patrzę i patrzę…...
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...
PCF powininen wykonywać przerwania co sekunde lecz gdy sprawdzam multimetrem napięcie DC na linii przerwaniowej to mam stałe napięcie. (a powinno przemiatać od Vdd do 0 V) Wyjście INT PCFa jest typu OC. Musi być podciągnięte.
1. nie definiuj F_CPU w kodzie!!!!!!!!!! 2. nie stosuj zapisów typu: PORTC = 0x0c; - zamiast tego użyj etykiet oraz operacji bitowych - tak jak w zapisie do MCUCR np. 3. mruganie zdecydowanie na przerwanie timera - masz nawet LED_timer ;) 4. aktualizacja zawartości wyświetlacza - wywołanie funkcji LED_dec(liczba,0); - powinno odbywać się tylko po odczytaniu...
Witam, W skrócie- jestem połączony z PCF8583P poprzez i2c. Zczytuje z niego co sekunde czas, ktory sie nie inkrementuje- Dlaczego? Siedze w nocie katalogowej od godziny i nigdzie nie moge znalezc wzmianki o tym co zrobic aby zegar ruszyl. Nie chce tutaj korzystac z przerwania INT, chce tylko na poczatku wlaczenia programu aby aktualny czas zostal zapisany...
Zobacz ten kod - jest to zegarek z wyświetlaniem czasu lokalnego , utc oraz daty..korzysta z PCF8583..multiplex na 6 cyfr..proc to atmega32 16mHz. #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> #include <avr/delay.h> //********** funcje obsługi TWI dla rtc #define zegar 0xA2 // A0...
he he mamy podobne gusty- też teraz bawie sie z S52 i PCF. nie pamietam czy programowe zatrzymanie zegara powoduje też że przestaje on generować przerwania co sekunde (może sie ktos wypowie dla pewnosci), takie zatrzymanie jest niby wskazane przy nastawianiu zegarka- osobiście darowałem sobie zatrzymywanie zegara w tym momencie. komunikacja z eepromem...
Mirku nie przesadzaj z tym napięciem, na poprzednim schemacie narysowałem przecież kondensatory na zasilaniu, a do tego napięcie jest stabilizowane. Starczy aż nadto. Moja Atmega8 ma połączenie między Vcc a AVcc, dlatego nie podłączałem. Ale, żebyście już tak na mnie nie naskakiwali, to zmodyfikowałem zasilanie i narysowałem schemat w Eaglu stan faktyczny...
-> zorro Proponowął bym poprzegladać prase elektroniczną, bądz poszukac w sieci układów tej maści (zegarki, mierniki9 czestotliwości etc...) Jeśli chodzi o jakies proste zegarki to można wyróżnić w zasadzie 3 bloki - układ generatora (bardzo popularna jest np kombinacja rezonatora kwarcowego 32,768KHz i układu CD4060) - dzielnik czestotliwości (przeważnie...
Kolejny kawałek ku potomności. Poniżej procedura ustawiająca alarm dzienny na PCF8583. Oczywiście alarm jest używany do wygenerowania z PCFka przerwania i np. wybudzenia układu z trybu oszczędzania energii. Wystarczy odpowiednią nóżkę PCF dać na dowolny port wejściowy procka i ustawić potem przerwanie. 'deklarujemy procedurę ustawiania alarmu potrzebne...
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);...
pcf8583 przerwać sekunda pcf8583 asembler biblioteka pcf8583
tranzystory sterujące temperatura regulator nawiew renault netflix ekrany
wzmacniacz volvo wzmacniacz volvo
Kompresor 50l i klucz Parkside 310Nm - czy to działa? Wydajność kompresora 50l: parametry i modele