logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Gotowy kod obsługi PCF8583 przez I2C na mikrokontrolerze Atmel 89S51 w C lub ASM

qbik18 26 Gru 2006 21:31 1607 7
REKLAMA
  • #1 3372577
    qbik18
    Poziom 12  
    Posty: 85
    Ocena: 13
    Potrzebuje gotowego programu obslugujacego pcfa przez i2c przez uP Atmela 89s51, bo nierozumiem tego i niewiem jak napisac, najlepiej w C , moze tez byc assembler....POMOCY
  • REKLAMA
  • Pomocny post
    #2 3372735
    markosik20
    Poziom 33  
    Posty: 2261
    Pomógł: 208
    Ocena: 147
    Proszę :) w C.
    Załączniki:
    • I2C.c (2.01 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #3 3372782
    j_saw
    Poziom 13  
    Posty: 67
    Pomógł: 2
    Ocena: 59
    Nie bardzo rozumiem o co chodzi - wysłałem koledze gotowe procedury do obsługi PCF w I2C napisane w C w odpowiedzi na post z wczoraj pt."Projekt Sygnalizacja program w C". Dzisiaj znowy ten sam problem ale pod trochę inną nazwą ????? - chyba, że kolega liczy na gotowca od kogoś.
  • #4 3372848
    markosik20
    Poziom 33  
    Posty: 2261
    Pomógł: 208
    Ocena: 147
    Z gotowcami jest tak, że i tak trzeba coś w nim zmienić chcący dopasować go do swoich zastosowań.
    Kolega qbik18 i tak nic nie rozumie
    Cytat:
    nierozumiem tego i niewiem jak napisac
    więc i tak z gotowców nieskorzysta. :D
  • REKLAMA
  • #5 3373282
    qbik18
    Poziom 12  
    Posty: 85
    Ocena: 13
    j_saw dziekuje za to co dostalem. Ale wlasnie o to chodzi ze ja tego nie rozumiem, zaczelismy niedawno programowac i rzucili nas od razu na glebokie wody bez nauki plywania....i rob co chcesz, dlatego zwracam sie z prosba do was, ludzi ktorzy to potrafia.... Zeby tego sie nauczyc trzeba by zaczac od podstaw a nawet nie ma na to czasu...siedzialem dzis nad tym i nie dziala mi, dlatego zwrocilem sie znow z prosba o pomoc, bo pewnie cos zle robie...

    Dodano po 5 [minuty]:

    Reszte mysle ze dam rade zaprogramowac, ale musze zaczac od tego zeby zliczac impulsy zegarowe i ustawic czasy dla poszczegolnych swiatel i denerwuje sie bo nie moge z tym ruszyc....
  • Pomocny post
    #6 3373580
    j_saw
    Poziom 13  
    Posty: 67
    Pomógł: 2
    Ocena: 59
    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 przesłanych plikach miał kolega napisane procedury :
    "Zapisz_I2C(adres, *zmienna)" oraz "Czytaj_I2C(*zmienna, adres, ile bajtów)" - wystarczy to wstawić w odpowiednim miejscu w programie!!! Co jeszcze kolega uważa pod hasłem "potrzebuje procedur ......"

    Pisze kolega, że nie działa (zakładam program) to proszę zamieścić tutaj kod źródłowy, ew. opis jakie błędy wypisuje kompilator......itp Kolegom z forum zapewne będzie łatwiej się odnieś do programu który widzą przed oczami - chyba, że to jest tylko "void main(void);"
  • REKLAMA
  • #7 3373779
    qbik18
    Poziom 12  
    Posty: 85
    Ocena: 13
    Ja chyba wogole mam zly kompilator, pracowalismy w srodowisku MIDE-51, czy ona jest dobry?

    Wiem chcialem zrobic tylo przy pomocy obslugi przerwan, ale to jednak za malo, cale RTC jest tylko po to by o godzinie 22 wlaczyly sie swiatla pomaranczowe pulsujace. To oczywiscie bardzo utrodnia dla mnie i zwieksza koszty, bo musze ten czas wyswietlac nastepnie na lcd.

    Zliczac w sensie tym...ze realizacja ruchu na skrzyzowaniu zrobiona przeze mnie obejmuje jakes 80sek jednego cyklu i w odpowiednim momencie musza zmieniac sie swiatla...

    Teraz jeszcze mysle nad tym....bo jezeli ustawie godzine to po wylaczeniu zasilania wszystko znow trzeba bedzie ustawiac, mysle wiec nad jakiems ukladem podtrzymania....ale to pozniej
  • #8 3384372
    Woycek
    Poziom 13  
    Posty: 38
    Pomógł: 5
    Ocena: 1
    qbik18 napisał:


    Teraz jeszcze mysle nad tym...bo jezeli ustawie godzine to po wylaczeniu zasilania wszystko znow trzeba bedzie ustawiac, mysle wiec nad jakiems ukladem podtrzymania...ale to pozniej

    Zastosuj procka z pamięcią EEPROM wewnątrz lub dopnij ją z zewnątrz i po problemie.

Podsumowanie tematu

✨ Dyskusja dotyczy poszukiwania gotowego kodu w języku C lub assembler do obsługi układu PCF8583 przez magistralę I2C na mikrokontrolerze Atmel 89S51. Autor ma trudności ze zrozumieniem i napisaniem programu, zwłaszcza w kontekście implementacji zegara czasu rzeczywistego (RTC) do sterowania sygnalizacją świetlną. Wskazano, że do prostych sekwencyjnych przełączeń świateł wystarczy przerwanie od timera, a RTC jest potrzebny tylko do precyzyjnego sterowania czasem, np. włączania świateł pomarańczowych o określonej godzinie. Przesłane wcześniej procedury do odczytu i zapisu przez I2C mogą być wykorzystane, ale wymagają dostosowania do konkretnego zastosowania. Poruszono też kwestie wyboru kompilatora (MIDE-51) oraz problemu podtrzymania ustawień czasu po zaniku zasilania, sugerując zastosowanie mikrokontrolera z pamięcią EEPROM lub zewnętrznej pamięci nieulotnej. Autor planuje zliczać impulsy zegarowe i ustawiać czasy dla poszczególnych świateł w cyklu trwającym około 80 sekund.
Wygenerowane przez model językowy.
REKLAMA