marian253 napisał(a):
Może jeszcze brakuje czegoś przed pętlą while(1) żeby dane wczytały się ramu.
Znasz przyczynę, tyko nie potrafisz znaleźć rozwiązania?
Do rejestru OCR1A wpisujesz wartość zmiennej
pwm1 (linijka 66).
Zmienna
pwm1 jest zadeklarowana globalnie i nie jest zainicjowana żadną wartością, więc podczas startu programu zostanie wyzerowana. Jeśli więc wpiszesz jej wartość do OCR1A (linijka 66), to PWM wystartuje od zera.
Zapisaną w EEPROM wartość zmiennej
eem_cfg.pwm1 wczytujesz przed pętlą while do zmiennej w RAM
ram_cfg.pwm1 (linijka 60), a do rejestru OCR1A wpisujesz (wyzerowaną) zmienną
pwm1. Nie masz za to nigdzie przypisania do zmiennej
pwm1 odczytanej z EEPROM wartości
ram_cfg.pwm1 i dlatego Ci to nie działa. Powinieneś po linijce 60 (
copy_eem_to_ram();) dodać linijkę
pwm1 = ram_cfg.pwm1;marian253 napisał(a):
Zrobiłem tak jak Mirek sugerował, czyli pod klawiszem dorzuciłem: ram_cfg.pwm1 = pwm1;
Skoro zrobiłeś tak, jak Mirek zalecił to jeszcze usuń tę linijkę 64 (
eem_cfg.pwm1 = pwm1;)