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

Jak wymusić programowy reset mikrokontrolera AVR w Bascomie lub assemblerze?

KJ 09 Gru 2007 01:44 1559 5
REKLAMA
  • #1 4567821
    KJ
    Poziom 31  
    Posty: 2370
    Pomógł: 68
    Ocena: 945
    Witam. Czy da się jakoś wymusić programowo reset mikrokontrolera AVR ? tj chcę mieć warunek w programie że jeśli jakaś zmienna = ileś to procek się resetuje. Najlepiej w bascomie albo assemblerze.
  • REKLAMA
  • #2 4567958
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    Było już na ten temat.

    Jak masz wolną końcówkę portu to połącz ją z resetem. Po wywołaniu odpowiedniego stanu końcówki uC się zresetuje. Może mało elegancki pomysł, ale skuteczny.
  • REKLAMA
  • #3 4568026
    Mad Bekon
    Poziom 23  
    Posty: 794
    Pomógł: 31
    Ocena: 36
    Jesli nie zależy Ci na bardzo szybkim resecie (czytaj szybszym niż po 16ms) to możesz odpalić Watchdoga, który się przepełni i zresetuje procka.
  • REKLAMA
  • #4 4569017
    mr_kciuk
    Poziom 17  
    Posty: 158
    Pomógł: 25
    Ocena: 29
    Mam małe doświadczenie w tych sprawach, ale czy nie wystarczy zwykły skok w asemblerze (sprawdzi się też w bascomie) typu JMP $000 ?
  • REKLAMA
  • #5 4569348
    kris_gor
    Poziom 17  
    Posty: 240
    Pomógł: 14
    Ocena: 9
    mr_kciuk napisał:
    Mam małe doświadczenie w tych sprawach, ale czy nie wystarczy zwykły skok w asemblerze (sprawdzi się też w bascomie) typu JMP $000 ?


    Przy takim skoku nie są zerowane rejestry procesora. Czasami to nie przeszkadza, ale pamiętać o tym trzeba.
  • #6 4569490
    AVATAR_PL
    Poziom 14  
    Posty: 178
    Pomógł: 4
    Ocena: 14
    Witam
    Miałem podobny problem i rozwiązałem go właśnie watchdog-iem, poczytaj ten temat:
    https://www.elektroda.pl/rtvforum/topic482898.html
    Skok do adresu zerowego, nie jest najlepszym rozwiązaniem, ponieważ jak ktoś wcześniej wspomniał nie ustawia to rejestrów na wartości początkowe. Nie chodzi tu tylko o stany portów ale wewnętrzne rejestry (przerwania, flagi przerwań, liczniki itp.)
    Jednym słowem najlepszy jest watchdog.
REKLAMA