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

Atmega32 + EEprom 24c32 zapis i odczyt z pamieci zewnetrznej

Umbactor 05 Lut 2018 13:22 1356 11
REKLAMA
  • #1 17014425
    Umbactor
    Poziom 7  
    Posty: 7
    Witam potrzebuje pomocy z zapisem i odczytem z pamieci 24C32 jest ona zlokalizowana na malym zegarze zewnetrznie dopinanym do plytki .
    Tutaj przesylam kod jest to sklejka z poprzednich zajec jednak na zajeciach mielismy odczytywanie z pamieci zegara a o EEPROM 24C32 nie bylo mowy . Szukalem czegos w internecie jednak juz mam dosyc ;C Na LCD nic sie nie wyswietla jednak to nie problem z podlaczeniem poniewaz poprzednie zadania mi dzialaja .

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod



    Niestety program nie dziala i niemam pojecia dlaczego Studiuje informatyke wiec jest to troche czarna magia ale profesor nie odpuszcza ;D Licze na pomoc
  • REKLAMA
  • #2 17014473
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #3 17014482
    Umbactor
    Poziom 7  
    Posty: 7
    Dzieki za odpowiedz czyli powinno byc jakos tak ?
    twistart();
    		twiwrite(0b10100000);
    	
    		twiwrite(a[0]);
    		twistop();
    		_delay_ms(10);

    Co do ACK rozumiem ze jesto jakiego rodzaju sygnal ktory daje nam komunikacje jednak nie mam pojecia jak go uzywac ;C
  • Pomocny post
    #4 17014535
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #5 17014548
    Umbactor
    Poziom 7  
    Posty: 7
    Funkcje napisane przez mojego profesora nie chce mieszac poprostu chce mu oddac zapis i odczyt z 24C32 i tyle
  • Pomocny post
    #6 17014628
    Konto nie istnieje
    Konto nie istnieje  
  • #7 17014641
    Umbactor
    Poziom 7  
    Posty: 7
    Rozumiem a do odczytu wystarczy
    j=twiread(adres);?
  • Pomocny post
    #8 17014785
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #9 17014796
    Umbactor
    Poziom 7  
    Posty: 7
    ok czyli
    
    start(); // czy tez musze dawac start() ??
    if (status & 0xF0 != 8) return( BLAD_START );
    
    if (status & 0xF0 != ?? ){ stop(); return( BLAD_ADRES ); }
    
    if (status & 0xF0 != ?? ){ stop(); return( BLAD_DANA ); }
    
    j=read(adres);
    stop(); 
    


    Osobiscie nie mam pojecia jakie moga wystapic bledy mamy co tydzien inny uklad wiec nie mam mozliwosci sie tego nauczyc pozatym to nie moja dzialka ;C
  • #10 17014988
    Konto nie istnieje
    Konto nie istnieje  
  • #11 17014995
    Umbactor
    Poziom 7  
    Posty: 7
    start(); // czy tez musze dawac start() ??
    if (status & 0xF0 != 8) return( BLAD_START );
    j=read(adres);
    stop(); 
    

    Czy taki odczyt zadziala czy musze jeszcze cos zrobic nie mam oczywiscie Atmegi przy sobie ;C
  • #12 17015009
    Konto nie istnieje
    Konto nie istnieje  

Podsumowanie tematu

✨ W dyskusji poruszono problem zapisu i odczytu danych z pamięci EEPROM 24C32 przy użyciu mikrokontrolera ATmega32. Użytkownik miał trudności z implementacją kodu, który był oparty na wcześniejszych zajęciach dotyczących odczytu z zegara RTC DS3231. Uczestnicy forum zasugerowali, aby użytkownik sprawdził, czy jego funkcje obsługi I2C poprawnie reagują na sygnał ACK oraz aby dodał opóźnienia po zapisach, ponieważ EEPROM nie potwierdza operacji natychmiastowo. Podkreślono również znaczenie sprawdzania statusu po każdej operacji, aby zdiagnozować potencjalne problemy z komunikacją. Użytkownik był również informowany o konieczności sprawdzenia dokumentacji technicznej EEPROM w celu poprawnej implementacji odczytu.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA