Skocz do zawartości

[c][atmega128]


Rico

Pomocna odpowiedź

Hej

mam problem z atmega128, dzieją mi się dziwne cuda 🤯

Kod całego programu mam pogrupowany na funkcje, i pewne instrukcje gdy są w funkcji powodują "zacięcie" uC,

Dla przykładu gdy poniższa linia kodu znajduje się w funkcji procek się zacina a gdy wrzucę ja tak po prostu do maina zaraz pod tą funkcją wszystko działa jak powinno że aż miło

PORTC |= _BV(0);

Tego typu dziwne cuda mi się dzieją ma ktoś jakiś pomysł

PS: Szczęśliwego roku

Link do komentarza
Share on other sites

Jak duży jest program? Ile pamięci RAM zajmujesz na użytek swój i wszystkich funkcji?

Widzę dwie możliwości:

1.Inicjalizujesz za dużo pamięci i w pewnym momencie przekraczasz bufor i dzieją się cuda (bo np. stos zapisuje informacje na Twoich danych itp.)

2.Nie zmieniłeś trybu procesora z kompatybilności ze starą rodziną na pełną atmega128 co też może różne dziwne rzeczy powodować.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Przepraszam możesz powiedzieć coś więcej o podpunkcie 2 bo nie do końca rozumiem co chciałeś powiedzieć.

musisz przestawić fusebita odpowiedzialnego za kompatybilność z ATmegą103. Domyślnie jest on ustawiony na tryb zgodności i objawia się to tym, że program nie wykona ci żadnej funkcji, właśnie tak jak napisałeś.

Chodzi dokładnie o bit M103C (drugi bit) w fusebitach "EXTENDED"

Link do komentarza
Share on other sites

Mam jedno pytanie przy okazji. Atmegę 128 przez isp programuje się po tdi i tdo zamiast miso mosi. Są to piny jtag. Jak wyłączę obsługę jtaga to powinna się programować po isp? Szukałem w DS ale nie znalazłem.

Link do komentarza
Share on other sites

Nie, do ISP masz PDI i PDO(PE0/PE1). Jak chcesz wyłączyć JTAG jak ISP nie działa? 😃

Pamiętaj natomiast przeprogramować fusebit atmega103 compatibility mode, bo domyślnie z fusebitów atmega128 robi za atmega103.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.