Adam Kowalski
Guest
Fri May 12, 2006 5:36 am
Witam serdecznie!!
Zrobiłem ostatnio proste urządzenie do odliczania czasu, kilka LED-ów, 4
przyciski i 1 buzzer. Napisałęm pogram, który w emulatorze chodzi bez
problemów, zaprogramowałem tego AT, weryfikacja OK. Obsługa klawiszy
jest ok, czyli dodawanie czasu (kolejne diody się zaświecają),
odejmowanie czasu, resetowanie czasu, startowanie. W tym miejscu
właściwie się kończy poprawna praca. Po nastawieniu dowolnego czasu
zawsze po takim samym czasie następuje reset, czyli po ok 2 min. Co może
być tego powodem??
Zibias
Guest
Fri May 12, 2006 6:19 am
Quote:
Zrobiłem ostatnio proste urządzenie do odliczania czasu, kilka LED-ów, 4
przyciski i 1 buzzer. Napisałęm pogram, który w emulatorze chodzi bez
problemów, zaprogramowałem tego AT, weryfikacja OK. Obsługa klawiszy jest
ok, czyli dodawanie czasu (kolejne diody się zaświecają), odejmowanie
czasu, resetowanie czasu, startowanie. W tym miejscu właściwie się kończy
poprawna praca. Po nastawieniu dowolnego czasu zawsze po takim samym
czasie następuje reset, czyli po ok 2 min. Co może być tego powodem??
może przepełnienie stosu? jesli jakiś frgment kodu jest wywoływany
stosunkowo
rzadko i zostaia coś na stosie to po kiludizeisęciu wywołaniach
zapełni stos i .... reset
Druga przyzczyna to najechanie na stos wpisami do pamięci, może
coś zapisujesz w pamieęci i adres jest inkrementowany, efekt ten sam
Adam Kowalski
Guest
Fri May 12, 2006 6:43 am
Użytkownik Zibias napisał:
Quote:
może przepełnienie stosu? jesli jakiś frgment kodu jest wywoływany
stosunkowo
rzadko i zostaia coś na stosie to po kiludizeisęciu wywołaniach
zapełni stos i .... reset
Druga przyzczyna to najechanie na stos wpisami do pamięci, może
coś zapisujesz w pamieęci i adres jest inkrementowany, efekt ten sam
A może to być spowodowane tym, że w bascomie podczas pisania programu,
oraz przy kompilacji wykożystuje plik z 89s8252.dat ??
Chciał bym zaznaczyć, że w diedzinie procesorów dopiero początkuje.
Marek Dzwonnik
Guest
Fri May 12, 2006 11:31 am
Użytkownik "Adam Kowalski" <adam.kowalski@sistema.com.pl> napisał w
wiadomości news:e416s2$s9p$1@news.onet.pl
Quote:
Zrobiłem ostatnio proste urządzenie do odliczania czasu, kilka
LED-ów, 4 przyciski i 1 buzzer. Napisałęm pogram, który w emulatorze
chodzi bez problemów, zaprogramowałem tego AT, weryfikacja OK.
Obsługa klawiszy jest ok, czyli dodawanie czasu (kolejne diody się
zaświecają), odejmowanie czasu, resetowanie czasu, startowanie. W tym
miejscu właściwie się kończy poprawna praca. Po nastawieniu dowolnego
czasu zawsze po takim samym czasie następuje reset, czyli po ok 2
min. Co może być tego powodem??
Przepełnienie stosu?
Jak liczysz czas? W przerwaniach od timera? Czy wracając z przerwania nie
zostawiasz czegoś na stosie?
To by tłumaczyło przepełnienie po stałym czasie (czyli po obsłużeniu X
przerwań).
--
Marek Dzwonnik, GG: #2061027 - zwykle jako 'niewidoczny'
(Uwaga Gadu-Gadulcowicze: Nie odpowiadam na anonimy.)
Konop
Guest
Fri May 12, 2006 12:20 pm
Quote:
A może to być spowodowane tym, że w bascomie podczas pisania programu,
oraz przy kompilacji wykożystuje plik z 89s8252.dat ??
Chciał bym zaznaczyć, że w diedzinie procesorów dopiero początkuje.
Nie znam 8252, ale całkiem możliwe, że to jest tym spowodowane... .
Wyjaśniałoby to też, czemu symulacja działa OK, a program rzeczywisty - nie.
Nie możesz skorzystać z pliku dla 8535??
Pozdrawiam
Konop
Konop
Guest
Fri May 12, 2006 12:22 pm
Quote:
nie. Nie możesz skorzystać z pliku dla 8535??
8253 miało byc
Adam Kowalski
Guest
Sat May 13, 2006 8:07 am
Użytkownik Marek Dzwonnik napisał:
Quote:
Użytkownik "Adam Kowalski" <adam.kowalski@sistema.com.pl> napisał w
wiadomości news:e416s2$s9p$1@news.onet.pl
Zrobiłem ostatnio proste urządzenie do odliczania czasu, kilka
LED-ów, 4 przyciski i 1 buzzer. Napisałęm pogram, który w emulatorze
chodzi bez problemów, zaprogramowałem tego AT, weryfikacja OK.
Obsługa klawiszy jest ok, czyli dodawanie czasu (kolejne diody się
zaświecają), odejmowanie czasu, resetowanie czasu, startowanie. W tym
miejscu właściwie się kończy poprawna praca. Po nastawieniu dowolnego
czasu zawsze po takim samym czasie następuje reset, czyli po ok 2
min. Co może być tego powodem??
Przepełnienie stosu?
Jak liczysz czas? W przerwaniach od timera? Czy wracając z przerwania nie
zostawiasz czegoś na stosie?
To by tłumaczyło przepełnienie po stałym czasie (czyli po obsłużeniu X
przerwań).
Sposób zliczania czasu jaki zastosowałem działa u kolegi właśnie na
89s8252. Jest sliczana ilość przepełnień. Błąd z tego wynikający to ok
16 sek na godzinę, ale dla mnie jest to w zópełniści wystarczająca
dokładność. Na początku, po włączeniu układu timer0 jest zerowany, to
samo po zakończeniu. Wygląda to tak, jakby program się zawieszał. Po
określonym czasi ~2 min słychać krótkie biip, wszystkie diody gasną i
nie działa żaden przycisk. Pomaga jedynie wyłączenie i włącznenie/reset
Adam Kowalski
Guest
Sat May 13, 2006 8:12 am
Użytkownik Konop napisał:
Quote:
nie. Nie możesz skorzystać z pliku dla 8535??
8253 miało byc :)
Nie mam skąd wziąć 89s8253.dat. Używam do kompilacji programu BASCOM
8051 v2.011. Jeżeli polecanie coś innego do tego procka to proszę o
podanie co. Do programowania używam progrmu kolegi z forum IPS prog
Adama Dybkowskiego
Adam Kowalski
Guest
Sat May 13, 2006 8:39 am
Użytkownik Konop napisał:
Quote:
nie. Nie możesz skorzystać z pliku dla 8535??
8253 miało byc :)
Nie mam skąd wziąć 89s8253.dat. Używam do kompilacji programu BASCOM
8051 v2.011. Jeżeli polecanie coś innego do tego procka to proszę o
podanie co. Do programowania używam progrmu kolegi z forum IPS prog
Adama Dybkowskiego