-
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
- w czasach LED komary mają ciężko
- walizka z kodami
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
Najnowsze wątki
- 2025-07-18 celnicy pobili policjanta
- 2025-07-18 Warszawa => Technik IT - Konfiguracja i Wsparcie Sprzętowe <=
- 2025-07-18 Warszawa => Specjalista ds. Sprzętu IT i Wsparcia Technicznego <=
- 2025-07-18 Białystok => Kotlin Developer <=
- 2025-07-18 Warszawa => Sales Director (Cloud solutions) <=
- 2025-07-18 Spalinowa trauma
- 2025-07-18 Polska => Senior Key Account Manager <=
- 2025-07-18 Białystok => Programista Kotlin <=
- 2025-07-18 Szczecin => Key Account Manager IT <=
- 2025-07-18 Łódź => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-18 Łódź => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-18 Lublin => Delphi Programmer <=
- 2025-07-18 Lublin => Programista Delphi <=
- 2025-07-17 Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- 2025-07-17 Andrzej Duda ułaskawił Roberta Bąkiewicza od zarzutu zapchnięcia ze schodów aktywistki Babci Kasi