Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Atmega 8 - Nie mogę zapisać ustawień pwm w zewnętrznym eepromie

MICHAŁ6201 15 Sep 2013 19:05 1599 9
  • #1
    MICHAŁ6201
    Level 16  
    Witam

    Postawiłem sobie za cel możliwość zapisania wartości pwm w zewnętrznej pamięci eeprom, w tym przypadku AT24C02

    Procesor to Atmega 8, wewnętrzne taktowanie zegara 1MHz

    W załączeniu wkleiłem uproszczony program zapisu i odczytu wartości pwm. Za pomocą pwm steruję jasnością podświetlenia wyświetlacza LCD. Wiem, że można zapisywać te ustawienia w eepromie procka, ale ja postawiłem sobie za cel możliwość zapisania tego ustawienia w pamięci zewnętrznej.

    Niestety nie działa mój program, a dokładnie zapis i odczyt ustawienia.
    Regulacja podświetlenia działa płynnie i bezproblemowo.

    Pamięć eeprom zewnętrzna, to AT24C02.
    A0 - GND, A1 - GND, A2 - VCC

    Adres zapisu to 168, a odczytu to 169.

    Oto mój kod:

    Code: basic4gl
    Log in, to see the code


    Proszę, o pomoc i podpowiedź co źle robię.

    Z góry dziękuję za pomoc i sugestie.
    Pozdrawiam
  • #2
    pietia86
    Level 25  
    Na pierwszy rzut oka wygląda na to że nie adresujesz (przy zapisie) komórki do której chcesz zapisać wartość 2.

    Nota katalogowa na stronie 11 rysunek 8 powinna pomóc.
  • #3
    mmacura
    Level 18  
    A czy przy zapisie do eeprom nie brakuje przypadkiem I2CStart???

    Marek
  • #4
    pietia86
    Level 25  
    MICHAŁ6201 wrote:
    Code: basic4gl
    Log in, to see the code


    mmacura wrote:
    A czy przy zapisie do eeprom nie brakuje przypadkiem I2CStart???


    Nie brakuje
  • #5
    mmacura
    Level 18  
    Przy zapisie, to jest odczyt.

    Marek
  • #6
    MICHAŁ6201
    Level 16  
    Macie rację z tym i2cstart. Przez pośpiech nie dopisałem.
    Walnąłem się, dzisiaj poprawie ten kod i załaduję od nowa do procka.
    Napiszę czy udało się zapisać i odczytać. Chciaż wczesniej w rogramie było z i2cstart i efekt byl taki sam.
  • #7
    pietia86
    Level 25  
    mmacura wrote:
    Przy zapisie, to jest odczyt.

    Marek


    O ja głupi... zwracam honor.

    Przez pośpiech źle rozczytałem...
  • #8
    MICHAŁ6201
    Level 16  
    Już poprawiłem.
    Zmiany naniosłem w kodzie w pierwszym poście. Niby wszystko jest ok, a jednak nadal nie działa.

    Co zrobić, żeby działało? Mi już brakło pomysłów ...

    A jednak udało mi się rozwiązać problem i znalazłem błąd:)

    Tutaj wklejam działający kod, jakby komuś kiedyś w przyszłości potrzebne było na wzór:

    Code: basic4gl
    Log in, to see the code


    Pierwszy błąd zauważył Kolega mmacura

    Kolejny błąd: w odczycie ustawienia brakło przecinka pomiędzy Pwm1a a Nack: I2crbyte Pwm1a , Nack

    Dziękuję Wszystkim za okazane zainteresowanie i pomoc.

    Mam pytanie jeszcze - doradźcie mi gdzie lepiej dać odczyt ustawienia - w głównej pętli a czy przed główną pętlą?
    Temat uważam za zamknięty.
  • #9
    dioda1000
    Level 28  
    MICHAŁ6201 wrote:
    Niby wszystko jest ok,
    Mi już brakło pomysłów ...

    A rezystory podciągające SDA SCL są ??
  • #10
    MICHAŁ6201
    Level 16  
    Są rezystory podciągające. Działa na i2c jeszcze zegarek PCF8583 więc wszystko ok z samą szyną I2C.
    Ale już znalazłem błąd:)