Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięwatchdog problem z ATMEGA168
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
W moim układzie zainstalowałem procesor atmega168. (poprzednio był atmega8 i problemów w tym programie nie było)
A problem jest następujący:
Mój program w pewnym punkcie ma sie sam zresetować.
Rozwiązałem to następująco: skonfigurowałem watchdoga, potem zrobiłem stop watchdog a w punkcie w którym ma się program zresetować robię start watchdog (to jest pusta pętla więc czasu wystarczy)
No i po chwili atmega 8 wstaje bez problemu a na atmega 168 procesor jak by cały czas wisiał
Jak podłącze do układu programator to procesor odpowiada, ale program sie nie uruchamia, procek nie reaguje nawet na reset wykonany ręcznie pinem reset.
Dopiero po odłączeniu zasilania i włączeniu ponownym układ działa znów poprawnie.
Nie mam pojęcia dlaczego na atmega8 problemu nie było a przeciez procki sa praktycznie takie same, róznia sie tylko częstotliwością próbkowania watchdoga (jego zegara) w atmega 8 jest 1 MHz a w atmega 168 jest 128 Khz z tego co pamiętam, , ale nie powinno to robic problemu.
W fuse bitach tez próbowałem przestawiac konfigurację watchdog, ale na obu ustawieniach to samo- sam juz nie wiem co mam z tym zrobić.
Może ktoś miła podobny problem.
Proszę o pomoc !
A problem jest następujący:
Mój program w pewnym punkcie ma sie sam zresetować.
Rozwiązałem to następująco: skonfigurowałem watchdoga, potem zrobiłem stop watchdog a w punkcie w którym ma się program zresetować robię start watchdog (to jest pusta pętla więc czasu wystarczy)
No i po chwili atmega 8 wstaje bez problemu a na atmega 168 procesor jak by cały czas wisiał
Jak podłącze do układu programator to procesor odpowiada, ale program sie nie uruchamia, procek nie reaguje nawet na reset wykonany ręcznie pinem reset.
Dopiero po odłączeniu zasilania i włączeniu ponownym układ działa znów poprawnie.
Nie mam pojęcia dlaczego na atmega8 problemu nie było a przeciez procki sa praktycznie takie same, róznia sie tylko częstotliwością próbkowania watchdoga (jego zegara) w atmega 8 jest 1 MHz a w atmega 168 jest 128 Khz z tego co pamiętam, , ale nie powinno to robic problemu.
W fuse bitach tez próbowałem przestawiac konfigurację watchdog, ale na obu ustawieniach to samo- sam juz nie wiem co mam z tym zrobić.
Może ktoś miła podobny problem.
Proszę o pomoc !
Ostatnio zmieniony 19 sie 2007, o 20:37 przez nestor197, łącznie zmieniany 1 raz.
a czy jakos jaśniej by sie dało ? bo szczerze powiedziawszy nie wiem o co chodzi
[ Dodano: 20-08-2007, 08:08 ]
poprostu ie bardzo wiem o co chodzi z tą tablicą wektorów
[ Dodano: 20-08-2007, 21:12 ]
No i chyba nikt mi nie pomoze
Może jdnak Bardzo prosze o ppomoc
[ Dodano: 22-08-2007, 08:55 ]
Czy naprawdę nikt nie miał takiego problemu ?
Towarzysze pomożecie ??? .......................
[ Dodano: 20-08-2007, 08:08 ]
poprostu ie bardzo wiem o co chodzi z tą tablicą wektorów
[ Dodano: 20-08-2007, 21:12 ]
No i chyba nikt mi nie pomoze
Może jdnak Bardzo prosze o ppomoc
[ Dodano: 22-08-2007, 08:55 ]
Czy naprawdę nikt nie miał takiego problemu ?
Towarzysze pomożecie ??? .......................
Mam dokładnie ten sam problem jak nestor197 . Czy może ktoś się z tym uporał, bo ja wypróbowałem już wszystko, co mi przez parę tygodni przyszło do głowy...
Zamieszczam do prób programik (przeróbka przykładu wykorzystania Watchdoga z Help-a Bascoma-AVR). Program w symulacji działa prawidłowo a procek po Resecie się zawiesza.
Czekam na pomoc albo tylko sprzętowy Watchdog mi pozostaje?...
Zamieszczam do prób programik (przeróbka przykładu wykorzystania Watchdoga z Help-a Bascoma-AVR). Program w symulacji działa prawidłowo a procek po Resecie się zawiesza.
Kod: Zaznacz cały
'$sim
$regfile = "m168def.dat"
$crystal = 8000000
$prog &HFF , &HCF , &HD7 , &HF9 'Ustawienia Fuse Bits itd.
$baud = 19200
$hwstack = 32
$swstack = 10
$framesize = 40
Reset Watchdog
Stop Watchdog
Config Pinb.4 = Output : Config Pinb.3 = Output : Config Pinb.2 = Output : Config Pinb.1 = Output
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.3 , Db6 = Portb.2 , Db7 = Portb.1 , E = Portc.2 , Rs = Portc.4
Dim I As Word
Config Watchdog = 2048
Start Watchdog
For I = 1 To 100
Print I
Cls : Lcd I
Waitms 100
'Reset Watchdog
Next
End
Zawiesza, czy restartuje nonstop ??Program w symulacji działa prawidłowo a procek po Resecie się zawiesza.
Kod: Zaznacz cały
Waitms 100 'Reset Watchdog
No a to jaki jest, programowy??albo tylko sprzętowy Watchdog mi pozostaje?...
Nie znam Bascoma, ale wydaje mi się że w 3 linijce od dołu masz wykomentowane polecenie resetowania Watchdog'a, co powoduje że po określonym czasie resetuje on cały procesor - i pewnie stąd problem, tak jak pisał pajączek, procesor się nie zawiesza tylko ciągle resetuje.
Symulacja działa prawidłowo pawdopodobnie dlatego że Watchdog się nie symuluje w Baskom.
Pozdrawiam
Marek
Symulacja działa prawidłowo pawdopodobnie dlatego że Watchdog się nie symuluje w Baskom.
Pozdrawiam
Marek
Po wywołanym przez Watchdoga resecie procesor zawiesza się na początku programu i nie reaguje nawet na reset zewnętrzny (zwarcie pinu Reset do GND), uruchamia sie dopiero po odłączenie i ponownym włączeniu zasilania.Zawiesza, czy restartuje nonstop ??
Watchdog programowy to ten który jest tematem tego postuNo a to jaki jest, programowy??
A watchdog sprzętowy może być jak na tej stronie http://www.pp.piwko.pl/index.php?menu=3&temat=1
Instrukcję RESET WATCHDOG stosuje się do wyzerowania licznika układu Watchdog.Nie znam Bascoma, ale wydaje mi się że w 3 linijce od dołu masz wykomentowane polecenie resetowania Watchdog'a, co powoduje że po określonym czasie resetuje on cały procesor - i pewnie stąd problem, tak jak pisał pajączek, procesor się nie zawiesza tylko ciągle resetuje.
W następnej linijce jest i instrukcja STOP WATCHDOG która wyłącza watchdoga, ale w problemowym momencie do tego nie dochodzi bo procesor jest zawieszony. Jak by tego było mało, proces po zaprogramowaniu nowym wsadem ciągle "stoi", dopiero po wył/wł zasilania ożywa?
Pozdrawiam
Edit Pajaczek: prosze nie pisac postow 1 po 2-gim, tylko uzywac edit.
Przepraszam jestem początkujący, w czasie jak odpisywałem pojawił się nowy post.
Ostatnio zmieniony 24 sty 2008, o 16:50 przez Bibo, łącznie zmieniany 2 razy.
To moze wywal ten pierwszy reset i stop watchdoga, co?? Z helpa wynika ze nie wykonuje sie tego przed pierwsza konfiguracja watchdoga, dopiero wowczas nalezy sterowac (start/stop/reset) watchdogiem. Nie kojaze teraz co tam bascom wyczynia, byc moze wchodzi gdzies w kompetencje przerwania, albo startuje watchdoga przy okazji jego resetu.Po wywołanym przez Watchdoga resecie procesor zawiesza się na początku programu i nie reaguje nawet na reset zewnętrzny (zwarcie pinu Reset do GND), uruchamia sie dopiero po odłączenie i ponownym włączeniu zasilania.
Niezupelnie, to co jest tematem topica (nie postu) to jest wlasnie watchdog sprzetowy. To co pokazujesz pod powyzszym linkiem to watchdog ZEWNETRZNY... programowego niebardzo moge sobie wyobrazic - nie tyle wykonania, co sensu... program mialby zwalczac zawieszenia samego siebie??Watchdog programowy to ten który jest tematem tego postuNo a to jaki jest, programowy??
A watchdog sprzętowy może być jak na tej stronie http://www.pp.piwko.pl/index.php?menu=3&temat=1
W wiekszosci mozemy sobie wyobrazic do czego sluza te komendy (sa dosc czytelne), jednak... czytaj wyzej, najpierw config pozniej reset, wezmy taki przyklad: co jesli np. defaultem (po starcie systemu) jest config 0, zas RESET ustawia jednoczesnie START... skutek?? permanentna zwiecha za sprawa watchdoga, ktory mial przed tym chronic (to taki troche apokaliptyczna wersja, bo tak zdajsie nie jest).Instrukcję RESET WATCHDOG stosuje się do wyzerowania licznika układu Watchdog.
W następnej linijce jest i instrukcja STOP WATCHDOG która wyłącza watchdoga, ale w problemowym momencie do tego nie dochodzi bo procesor jest zawieszony. Jak by tego było mało, proces po zaprogramowaniu nowym wsadem ciągle "stoi", dopiero po wył/wł zasilania ożywa?
Btw. W takim razie uklad Ci sie wogole programuje?? Ciekawe tylko czy skutecznie
Ciekawi mnie , czy przez ten czas zaglądałeś do dokumentacji M168(myślę że tak) i czy zauważyłeś to:Mam dokładnie ten sam problem jak nestor197 . Czy może ktoś się z tym uporał, bo ja wypróbowałem już wszystko, co mi przez parę tygodni przyszło do głowy...
Pan M.Alberts niestety nie zauważył(przynajmniej w v1.11.8.7 i na dokładkę potraktował M168 jak M8 , jeśli chodzi o konfigurację rejestru WDTCSR.Config Watchdog=2048 , konfiguruje go na 2s , a poza tym max wartość dla M168 to 1024(ale też nie powoduje prawidłowego zapisu do WDTCSR).Poprostu autor Bascoma nie zauważył , że w M168 przybył nowy bit WDP3.Cóż , nikt nie jest doskonały , a i tak Bascom to niezłe narzędzieBit 3 - WDE: Watchdog System Reset Enable
WDE is overridden by WDRF in MCUSR. This means that WDE is always set when WDRF is
set. To clear WDE, WDRF must be cleared first. This feature ensures multiple resets during con-
ditions causing failure, and a safe start-up after the failure.
Spróbuj dopisać
Kod: Zaznacz cały
Reset Watchdog
Reset Mcusr.wdrf ' nie można zatrzymać watchdog'a , dopuki ten bit jest ustawiony
Stop Watchdog
Piotrek
Przede wszystkim dziękuje za zainteresowanie.
szymel
Co do czasów watchdoga (bity WDP3..0) ustawienie 2048 to 2 sekundy, 4096 dla 4sekund i 8191 to przerwanie po 8 sekundach, działa prawidłowo.
Nie potrafiłem wcześniej ustawić bitów w MCUSR a to takie proste!
Ja w WDTCSR pojedyncze bity ustawiałem tak:
Jednak z MCUSR to mi nie wychodziło, przynajmniej tak pokazał symulator w Bascomie i zrezygnowałem. Twoja sugestia szymel wygląda w symulacji bardzo optymistycznie, zaraz muszę to sprawdzić.
Niestety modyfikacja kodu do tej postaci nic nie zmieniła
W tym przypadku to nie ma żadnego znaczenia dla działania programu czy na początku programu są instrukcje Reset, Stop czy Config Watchdog, umieściłem je w tym przykładzie bo przeczytałem na jakimś forum żeby na początku programu zatrzymać watchdoga. Chciałem pominąć te sugestie...To moze wywal ten pierwszy reset i stop watchdoga, co?? Z helpa wynika ze nie wykonuje sie tego przed pierwsza konfiguracja watchdoga, dopiero wowczas nalezy sterowac (start/stop/reset) watchdogiem. Nie kojaze teraz co tam bascom wyczynia, byc moze wchodzi gdzies w kompetencje przerwania, albo startuje watchdoga przy okazji jego resetu.
Układ się programuje skutecznie bardziej złożonymi programami to jest tylko przykład do rozwiązania problemu z watchdogiem.Btw. W takim razie uklad Ci sie wogole programuje?? Ciekawe tylko czy skutecznie
szymel
Zaglądałem nieraz tylko ze zrozumieniem problem....Ciekawi mnie , czy przez ten czas zaglądałeś do dokumentacji M168(myślę że tak) i czy zauważyłeś to:
Atmel , w dokumentacji do ATMega168 , między innymi napisał/a:
Bit 3 - WDE: Watchdog System Reset Enable
WDE is overridden by WDRF in MCUSR. This means that WDE is always set when WDRF is
set. To clear WDE, WDRF must be cleared first. This feature ensures multiple resets during con-
ditions causing failure, and a safe start-up after the failure.
Pan M.Alberts niestety nie zauważył(przynajmniej w v1.11.8.7 i na dokładkę potraktował M168 jak M8 , jeśli chodzi o konfigurację rejestru WDTCSR.Config Watchdog=2048 , konfiguruje go na 2s , a poza tym max wartość dla M168 to 1024(ale też nie powoduje prawidłowego zapisu do WDTCSR).Poprostu autor Bascoma nie zauważył , że w M168 przybył nowy bit WDP3.Cóż , nikt nie jest doskonały , a i tak Bascom to niezłe narzędzie
Spróbuj dopisać
Kod:Kod: Zaznacz cały
Reset Watchdog Reset Mcusr.wdrf ' nie można zatrzymać watchdog'a , dopuki ten bit jest ustawiony Stop Watchdog
Co do czasów watchdoga (bity WDP3..0) ustawienie 2048 to 2 sekundy, 4096 dla 4sekund i 8191 to przerwanie po 8 sekundach, działa prawidłowo.
Nie potrafiłem wcześniej ustawić bitów w MCUSR a to takie proste!
Ja w WDTCSR pojedyncze bity ustawiałem tak:
Kod: Zaznacz cały
Wdtcsr = 01011001
Niestety modyfikacja kodu do tej postaci nic nie zmieniła
Kod: Zaznacz cały
$regfile = "m168def.dat"
$crystal = 8000000
$prog &HFF , &HCF , &HD7 , &HF9
Reset Watchdog
Reset Mcusr.wdrf
Stop Watchdog
Config Watchdog = 2048
Stop Watchdog
Config Pinb.4 = Output : Config Pinb.3 = Output : Config Pinb.2 = Output : Config Pinb.1 = Output
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.3 , Db6 = Portb.2 , Db7 = Portb.1 , E = Portc.2 , Rs = Portc.4
Dim I As Word
Start Watchdog
For I = 1 To 100
Cls : Lcd I
Waitms 100
Next
End
Kod: Zaznacz cały
Start Watchdog
For I = 1 To 100
Cls : Lcd I
Waitms 100
Next
End
/
Jeżeli polecenie START WATCHDOG powoduje uruchomienie Watchdoga, to trzeba go później co jakiś czas, kasować aby się nie przepełnił, natomiast za tym poleceniem nie ma instrukcji kasowania, za to jest opóźnienie około 10sekund, więc Watchdog się przepełnia i resetuje procesor i tak w koło.
A może się mylę?
Pozdrawiam
Marek
Aż mi smutno, że na moje pytanie niekt nie odpowiedział - a teraz cała lawina pomocy.
Ja do tej pory nie uporałem sie z problemem watchdoga w atmedze168
Pewnie jest to problem bascoma, niestety bardzo szkoda bo niektórych progreamów bez watchdoga sobie nie wyobrażam.
No ale będe obserwował odpowiedzi może komuś się w końcu uda odpalic tego watchdoga poprawnie
Naprawdę dzwonie to sie zachowuje że nawer reset sprzętowy nie pomaga- to już masakra
Ja do tej pory nie uporałem sie z problemem watchdoga w atmedze168
Pewnie jest to problem bascoma, niestety bardzo szkoda bo niektórych progreamów bez watchdoga sobie nie wyobrażam.
No ale będe obserwował odpowiedzi może komuś się w końcu uda odpalic tego watchdoga poprawnie
Naprawdę dzwonie to sie zachowuje że nawer reset sprzętowy nie pomaga- to już masakra
Mylisz sie... ze sie mylisz. Czyli prosciej, masz racje Ale tak miedzy nami, to juz o tym wspominalismy, duzo wczesniej.A może się mylę?
A tak jakos wyszlo, nic osobistego uwierz mi (przynajmniej jesli o mnie idzie).Aż mi smutno, że na moje pytanie niekt nie odpowiedział - a teraz cała lawina pomocy.
Tablica wektorow... czy dokladniej tablica wektorow przerwan.
Tablica umieszczona w okreslonym miejscu kodu (w przypadku AVR zaczynajaca sie pod adresem 0x0), zawierajaca adresy (a dokladniej instrukcje skokow do adresow) pod ktorymi znajduja sie funkcje obslugi przerwania. M8 i M168 maja rozniace sie wektory przerwan.
Choc osobiscie wydaje mi sie ze jest to jedynie luzno zwiazane z tym problemem, a przynajmniej z ta jego czescia na ktora masz wplyw.
Sprawdzcie jak Wam reaguje ten kod (tylko z mala podmianka 88 na 168) - odrazu mowie ze nie moj, tylko pochodzacy z online helpa bascoma.
Kod: Zaznacz cały
'-----------------------------------------------------------------------------------------
'name : watchd.bas
'copyright : (c) 1995-2007, MCS Electronics
'purpose : demonstrates the watchdog timer
'micro : Mega88
'suited for demo : yes
'commercial addon needed : no
'-----------------------------------------------------------------------------------------
$regfile = "m88def.dat" ' specify the used micro
$crystal = 8000000 ' used crystal frequency
$baud = 19200 ' use baud rate
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 32 ' default use 32 for the SW stack
$framesize = 40 ' default use 40 for the frame space
Dim B As Byte
Dim Wdbit As Bit
Print "Watchdog test"
If Mcusr.wdrf = 1 Then ' there was a WD overflow
Wdbit = 1 'store the flag
End If
Config Watchdog = 2048 'reset after 2048 mSec
If Wdbit = 1 Then 'just print it now since it is important that CONFIG WATCHDOG runs early as possible
Print "Micro was reset by Watchdog overflow"
End If
Start Watchdog 'start the watchdog timer
Dim I As Word
For I = 1 To 1000
Waitms 100
Print I 'print value
B = Inkey() ' get a key from the serial port
If B = 65 Then 'letter A pressed
Stop Watchdog ' test if the WD will stop
Elseif B = 66 Then 'letter B pressed
Config Watchdog = 4096 'reconfig to 4 sec
Start Watchdog 'CONFIG WATCHDOG will disable the WD so start it
Elseif B = 67 Then 'C pressed
Config Watchdog = 8192 ' some have 8 sec timer
'observe that the WD timer is OFF
Elseif B = 68 Then 'D pressed
Start Watchdog ' start it
End If
'Reset Watchdog
'you will notice that the for next doesnt finish because of the reset
'when you unmark the RESET WATCHDOG statement it will finish because the
'wd-timer is reset before it reaches 2048 msec
'When you press 'A' you will see that the WD will stop
'When you press 'B' you will see that the WD will time out after 4 Sec
'When you press 'C' you will see the WD will stop
'When you press 'D' you will see the WD will start again timing out after 8 secs
Next
End
Zamieszczam kod programu z działającym Watchdogiem, ale tylko jak program nie używa wyświetlacza LCD:
Może ma ktoś jakieś sugestie, co może być tego przyczyną?
Kod: Zaznacz cały
$regfile = "m168def.dat"
$crystal = 8000000
$prog &HFF , &HCF , &HD7 , &HF9 'Ustawienia Fuse Bits itd.
Reset Mcusr.wdrf ' nie można zatrzymać watchdog'a , dopuki bit jest ustawiony
Config Watchdog = 2048
Stop Watchdog
Config Lcd = 16 * 2
Dim A As Byte
Config Pinc.3 = Output : Led1 Alias Pinc.3
Reset Led1
Config Pinc.1 = Output : Led2 Alias Pinc.1
Reset Led2
Wait 4
Set Led1
Start Watchdog
For A = 1 To 50
Reset Led2
Waitms 100
Reset Watchdog
Set Led2
Waitms 100
'Cls : Lcd A 'Z tą linią kodu progran nie działa, bez Watchdog działa prawidłowo
Next
Reset Led2
End
Moim zdaniem przyczyną jest czas wykonania dwóch operacji na wyświetlczu LCD.
W pętli resetujesz WDT co około 200ms + czas potrzebny na operacje z LCD i widocznie jest to już trochę za dużo i WDT "stwierdza" że program się zawiesił i resetuje procesor.
Widzę dwie możliwości wyjścia z tego:
- zmniejszyć czasy opóźnień w pętli (waitms 100)
- zmniejszyć częstotliwość taktowania WDT.
Pozdrawiam
Marek
W pętli resetujesz WDT co około 200ms + czas potrzebny na operacje z LCD i widocznie jest to już trochę za dużo i WDT "stwierdza" że program się zawiesił i resetuje procesor.
Widzę dwie możliwości wyjścia z tego:
- zmniejszyć czasy opóźnień w pętli (waitms 100)
- zmniejszyć częstotliwość taktowania WDT.
Pozdrawiam
Marek
Nie w tym problem że program resetuje się w czasie obsługi wyświetlacza LCD, program wykonuje się do końca to znaczy po wyjściu z pętli For Next w której jest resetowany watchdog po upływie 2 sekund Watchdog resetuje procesor i się zawiesza - jak było opisane wcześniej... Obojętnie, w którym miejscu programu użyć instrukcji obsługi wyświetlacza zawsze procesor się zawiesza a bez nich program działa prawidłowo.Moim zdaniem przyczyną jest czas wykonania dwóch operacji na wyświetlczu LCD.
W pętli resetujesz WDT co około 200ms + czas potrzebny na operacje z LCD i widocznie jest to już trochę za dużo i WDT "stwierdza" że program się zawiesił i resetuje procesor.
Widzę dwie możliwości wyjścia z tego:
- zmniejszyć czasy opóźnień w pętli (waitms 100)
- zmniejszyć częstotliwość taktowania WDT.
Napisz może czego oczekujesz od tego progemu i jak rozpoznajesz że się zawiesił, ponieważ moim zdaniem on zawsze po wyjścia z pęli musi zawisnąć, dlatego że po wyjściu z pętli nie ma już nic, a to nie jest PC-et i nie ma systemu operacyjnego do którego mógłby wrócić.
Musisz dokładnie określić co procesor ma robić po zakończeniu pętli, jeżeli tego nie robisz to program wykonuje się dalej, tyle że tam nic nie ma i zawisa.
Marek
Musisz dokładnie określić co procesor ma robić po zakończeniu pętli, jeżeli tego nie robisz to program wykonuje się dalej, tyle że tam nic nie ma i zawisa.
Marek
Program który zamieściłem pokazuje do czego udało mi się dojść podczas prób rozwiązania problemów z niedziałającym Watchdogem nie jest celem samym w sobie.Napisz może czego oczekujesz od tego progemu i jak rozpoznajesz że się zawiesił, ponieważ moim zdaniem on zawsze po wyjścia z pęli musi zawisnąć, dlatego że po wyjściu z pętli nie ma już nic, a to nie jest PC-et i nie ma systemu operacyjnego do którego mógłby wrócić.
Musisz dokładnie określić co procesor ma robić po zakończeniu pętli, jeżeli tego nie robisz to program wykonuje się dalej, tyle że tam nic nie ma i zawisa.
Program dokładnie w tej formie jak jest zamieszczony z wyłączoną linią kodu
Kod: Zaznacz cały
'Cls : Lcd A
W skrucie: po konfiguracji Watchdoga, wyświetlacza LCD, dwuch pinów jako wyjścia do podłączenia diód LED (żeby było widać co się z programem dzieje) obie diody świecą
Kod: Zaznacz cały
Reset Led1
Reset Led1
Kod: Zaznacz cały
Stop Watchdog
Natomiast po zaprogramowaniu procesora programem z aktywną linią kodu
Kod: Zaznacz cały
Cls : Lcd A
Przychodzą mi do głowy tylko dwa pomysły:
1. Spróbuj na końcu programu, bezpośrednio przed 'END' wpisać nieskończoną pętlę, aby na reset WDT program oczekiwał w tej pętli.
2. Może Bascom ma jakiś błąd - spróbuj sciągnąć ze strony http://www.hpinfotech.ro/html/download.htm
ograniczoną do 2kB kodu wersję programu Codevision - jest do środowisko do programowania AVR w C, ale zawiera też dużo bibliotek i ma Wizardy do konfuguracji procesora - jeżeli tam będzie działało to już znasz przyczynę.
Pozdrawiam
Marek
1. Spróbuj na końcu programu, bezpośrednio przed 'END' wpisać nieskończoną pętlę, aby na reset WDT program oczekiwał w tej pętli.
2. Może Bascom ma jakiś błąd - spróbuj sciągnąć ze strony http://www.hpinfotech.ro/html/download.htm
ograniczoną do 2kB kodu wersję programu Codevision - jest do środowisko do programowania AVR w C, ale zawiera też dużo bibliotek i ma Wizardy do konfuguracji procesora - jeżeli tam będzie działało to już znasz przyczynę.
Pozdrawiam
Marek
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 26 gości