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

atmega64 - Nieskończona pętla w funkcji, zmiana fuse bitów CKSEL

qba0991 01 Paź 2013 14:17 1215 4
REKLAMA
  • #1 12797115
    qba0991
    Poziom 10  
    Posty: 11
    Mam problem z wywoływaniem funkcji na mikrokontrolerze atmega64. Jakąkolwiek funkcję wywołam, to wykonuje się w nieskończonej pętli. Dodam, że na mikrokontrolerze zmieniłem fabryczne ustawienie fuse bitów tak aby otrzymać taktowanie na wewnętrznym kwarcu równe 8Mhz. Aby to zrobić zmieniłem tylko ustawienia bitów CKSEL żadnych innych bitów nie zmieniałem. Dodatkowo w atmel studio w symbolach dodałem informację o aktualnym taktowaniu procesora F_CPU=8000000.

    oto listing programu
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Efekt jest taki, że pin PD1 cyklicznie zmienia swoją wartość. Dlaczego sam się zapętla?
  • REKLAMA
  • Pomocny post
    #2 12797139
    BlueDraco
    Specjalista - Mikrokontrolery
    Posty: 6479
    Pomógł: 939
    Ocena: 421
    Np. dlatego, że procesor się resetuje. Inny dobry powód - to złe ustawienie stosu, np. wskutek wybrania innego typu mikrokontrolera lub włączenia trybu zgodności z innym modelem w ustawieniach bitów konfiguracji.
  • REKLAMA
  • #3 12797238
    qba0991
    Poziom 10  
    Posty: 11
    Dzięki, sam bym do tego nie doszedł. Podejrzewałem tylko, że chyba się resetuje. Problemem okazał się tryb zgodności. Czy mógłbyś mi jeszcze wytłumaczyć dlaczego to miało wpływ? Tak aby na przyszłość być mądrzejszym. Pozdrawiam
  • REKLAMA
  • #4 12797272
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2206
    Tryb zgodności z ATMega103? Dlatego, że ona ma inaczej umieszczoną pamięć RAM, w efekcie stos jest ustawiony nieprawidłowo i zapewne każdy powrót z przerwania (instrukcja RET) kończy się skokiem pod adres 0xffff, skąd procesor realizuje zapewne nieudokumentowane instrukcje i leci aż do 0x0000, gdzie masz wektor RESET.
  • #5 12799300
    qba0991
    Poziom 10  
    Posty: 11
    Jeszcze raz dzięki :) Temat zamykam
REKLAMA