-
Data: 2020-08-25 20:36:41
Temat: Re: 74HCT245 jako port wejściowy - nie działa, choć powinien
Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 25.08.2020 18:42, J.F. wrote:
> Mowilem - wpisz w stos jakies znane wartosci i sprawdzaj ile ich sie
> ostalo.
Na razie wstrzymałem się z tym testem, bo jego przeprowadzenie jest
trochę uciążliwe ma tak antycznej platformie, gdy nie ma się dostępu do
sprzętowego debuggera i nie można tak po prostu ustawić pułapki i
podejrzeć zawartości pamięci.
Na chwilę obecną obserwacje zdają się wskazywać właśnie na problem ze
stosem...
> Sprzetowy chyba tez uzywa.
Tak, oczywiście. Miałem na myśli to, że używa go w ograniczonym
zakresie. Bodajże m.in. wartości zwracane przez funkcje są odkładane na
tym stosie. I to chyba tylko wtedy, gdy są one za duże, żeby dało się je
przekazać przez rejestry.
> Ale Ty stosu sprzetowego potrzebujesz ... chyba
Wydaje mi się, że sam w części kodu napisanej w asemblerze użyłem
instrukcji PHA i PLA tylko kilka razy. Na pewno występuj one w części
odpowiadającej za wykonanie przerwania (zrzucenie na stos i przywrócenie
kontekstu) oraz w jednej z procedur opóźniających. Widzę, że w kodzie
generowanym przez kompilator też czasem się pojawiają, gdy np. chwilowo
trzeba zwolnić rejestr albo akumulator.
> Ten jest chyba dobry - bo juz nie wołasz key_update().
Tak, to jest aktualna wersja kodu, w której wywaliłem wywołania tej
funkcji. Jednak to właśnie ten projekt buł problematyczny. Drugi, pomimo
wywołań kay_update() zawsze działał całkowicie poprawnie.
> A mozesz wrzucic assembler do funkcji key_update ?
> Moze ma tam troche wewnetrznych zmiennych tymczasowych.
Kompiluje się do następującego kodu asemblerowego:
; ----------------------------------------------------
-----------
; void __near__ key_update (__near__ struct key *)
; ----------------------------------------------------
-----------
.segment "CODE"
.proc _key_update: near
.segment "BSS"
L001E:
.res 1,$00
.segment "CODE"
jsr pushax
lda $6600
jsr pusha0
ldy #$03
jsr ldaxysp
sta ptr1
stx ptr1+1
lda (ptr1)
jsr tosanda0
jsr bnega
sta L001E
lda L001E
jsr pusha0
ldy #$03
jsr ldaxysp
sta ptr1
stx ptr1+1
ldy #$01
lda (ptr1),y
jsr tosicmp0
beq L0023
lda L001E
beq L0026
jsr pushw0sp
jsr _millis
ldy #$02
jsr staspidx
bra L002F
L0026: jsr _millis
jsr pushax
ldy #$03
jsr ldaxysp
sta ptr1
stx ptr1+1
ldy #$02
lda (ptr1),y
jsr tossuba0
cmp #$03
bcc L002F
jsr ldax0sp
ldy #$03
sta ptr1
stx ptr1+1
lda (ptr1),y
iny
ora (ptr1),y
beq L002F
jsr ldax0sp
ldy #$04
jsr ldaxidx
jsr callax
L002F: jsr ldax0sp
sta ptr1
stx ptr1+1
lda L001E
ldy #$01
sta (ptr1),y
L0023: jmp incsp2
.endproc
> No i wolasz z niej te key_func, prepare_disp, update_disp jak sie domyslam.
A tak, faktycznie. Te funkcje są wywoływane. Funkcja key_func przez
wskaźnik na funkcję zapisany w strukturze, a z niej jeszcze po kolei
prepare_disp i update_disp.
Następne wpisy z tego wątku
- 28.08.20 11:03 J.F.
Najnowsze wątki z tej grupy
- Zasilacz 7V na szynę DIN
- Waga z legalizacją
- Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- Pendrive zdycha, czy coś jeszcze innego? Problem z plikami.
- Odkurzacz Smapp Dynamic - dawny Zelmer
- Nagra IV i zewnętrzny pilot
- Fejk muzyczny czy nie fejk
- Raspberry Pi 3 Model B+
- Kuchenka elektryczna
- test
- Cewka elektrozaworu
- zapytanie o chip r5f21275nfp
- nie naprawiam więcej telewizorów
- Zrobił TV OLED z TV LCD
- Zasilacz USB na ścianę.
Najnowsze wątki
- 2025-03-26 Jaka wełna na poddasze?
- 2025-03-26 Ostrów Świętokrzy => Node.js / Fullstack Developer <=
- 2025-03-26 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2025-03-26 Kraków => Spedytor Międzynarodowy <=
- 2025-03-26 Czujnik dławienia termicznego procesora - który?
- 2025-03-26 Dlaczego wydałem rozkazy w d. 2025-03-23 i 24 ?
- 2025-03-26 Warszawa => Virtual Workplace Engineer <=
- 2025-03-26 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-03-26 Kraków => IT Expert (Network Systems area) <=
- 2025-03-26 Kraków => DevOps Engineer (Junior/Regular) <=
- 2025-03-26 Rzeszów => International Freight Forwarder <=
- 2025-03-26 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f
- 2025-03-26 Zasilacz 7V na szynę DIN
- 2025-03-26 Warszawa => NMS System Administrator <=
- 2025-03-26 Szambo przy wysokim poziomie wód