Paweł
Guest
Thu Oct 06, 2005 6:09 am
Witam.
Jak programowo zrobić reset AVR tak żeby rejestry
ustawiły się na wartości początkowe tak jak w sprzętowym?
Dziękuję za odpowiedź.
Paweł
T.M.F.
Guest
Thu Oct 06, 2005 6:27 am
Quote:
Jak programowo zrobić reset AVR tak żeby rejestry
ustawiły się na wartości początkowe tak jak w sprzętowym?
Wydaje mi sie, ze jedyna mozliwoscia jest przekroczenie czasu watchdoga.
--
Inteligentny dom -
http://idom.wizzard.one.pl
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz sie do projektu.
Slawomir Sidor
Guest
Thu Oct 06, 2005 6:28 am
Quote:
Jak programowo zrobić reset AVR tak żeby rejestry
ustawiły się na wartości początkowe tak jak w sprzętowym?
Na początku programu zrób inicjowanie rejestrów i podaj sygnał reset.
Możesz z dowolnego portu taki sygnał sepuku wyprowadzić.
No chyba, że musi to być inaczej zrobione.
--
Slawomir Sidor N 51 58.1385 E020 09.1966
Ja
Guest
Sun Dec 04, 2005 8:43 pm
Użytkownik "Paweł" napisał w wiadomości
Quote:
Witam.
Jak programowo zrobić reset AVR tak żeby rejestry
ustawiły się na wartości początkowe tak jak w sprzętowym?
Troche czsu minelo, ale moze sie przyda - cos takiego:
((void (code*) (void)) 0x0) ()
Adam Dybkowski
Guest
Sun Dec 04, 2005 11:33 pm
Ja wrote:
Quote:
Jak programowo zrobić reset AVR tak żeby rejestry
ustawiły się na wartości początkowe tak jak w sprzętowym?
Troche czsu minelo, ale moze sie przyda - cos takiego:
((void (code*) (void)) 0x0) ()
To jest tylko skok pod adres 0 i zadne rejestry SFR sie nie poustawiaja
w stan domyslny. Proponuje do tego celu raczej wykorzystac watchdoga:
zablokowac przerwania, ustawic minimalne opoznienie i wlaczyc
watchodoga. Dziala na 100% :)
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń "123" z adresu.
Ja
Guest
Mon Dec 05, 2005 8:13 am
Użytkownik "Adam Dybkowski" napisał w wiadomości
Quote:
Ja wrote:
Jak programowo zrobić reset AVR tak żeby rejestry
ustawiły się na wartości początkowe tak jak w sprzętowym?
Troche czsu minelo, ale moze sie przyda - cos takiego:
((void (code*) (void)) 0x0) ()
To jest tylko skok pod adres 0 i zadne rejestry SFR sie nie poustawiaja w
stan domyslny. Proponuje do tego celu raczej wykorzystac watchdoga:
zablokowac przerwania, ustawic minimalne opoznienie i wlaczyc watchodoga.
Dziala na 100%
Ale nie zawsze korzystanie z watchdoga moze komus odpowiadac. Ostatecznie w
startupie mozna rejestry "recznie" poustawiac i wtedy po takim "zerowaniu"
bedziemy mieli to co chcemy.
Ja
Adam Dybkowski
Guest
Mon Dec 05, 2005 8:50 pm
Ja wrote:
Quote:
Jak programowo zrobić reset AVR tak żeby rejestry
ustawiły się na wartości początkowe tak jak w sprzętowym?
[...]
Proponuje do tego celu raczej wykorzystac watchdoga:
zablokowac przerwania, ustawic minimalne opoznienie i wlaczyc watchodoga.
Ale nie zawsze korzystanie z watchdoga moze komus odpowiadac. Ostatecznie w
startupie mozna rejestry "recznie" poustawiac i wtedy po takim "zerowaniu"
bedziemy mieli to co chcemy.
Oczywiście najlepszym sposobem jest pełne inicjowanie każdego
wykorzystywanego komponentu peryferyjnego (UARTu, SPI itp), bez
polegania na domyślnych ustawieniach rejestrów po resecie.
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń "123" z adresu.
Ja
Guest
Wed Dec 07, 2005 11:17 pm
Użytkownik "Adam Dybkowski" napisał w wiadomości
Quote:
Oczywiście najlepszym sposobem jest pełne inicjowanie każdego
wykorzystywanego komponentu peryferyjnego (UARTu, SPI itp), bez polegania
na domyślnych ustawieniach rejestrów po resecie.
Mowa byla tylko o rejestrach

, poza tym podalem tylko jedna z kilku
mozliwosci, wiec nie goraczkuj sie tak.
BTW na restart od watchdoga trzeba chwilke poczekac, a moze komus zalezy na
blyskawicznej reakcji.
pozdrawiam
JA