eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika74HCT245 jako port wejściowy - nie działa, choć powinienRe: 74HCT245 jako port wejściowy - nie działa, choć powinien
  • Data: 2020-08-28 11:03:51
    Temat: Re: 74HCT245 jako port wejściowy - nie działa, choć powinien
    Od: "J.F." <j...@p...onet.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Użytkownik "Atlantis" napisał w wiadomości grup
    dyskusyjnych:5f455a39$0$551$6...@n...neostrada.
    pl...
    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.

    W C moze byc problem, ale mialem na mysli wpisanie w obszar stosu np
    55 gdzies na początku programu, a potem w petli glownej zliczenie ile
    ich zostalo i wyswietlanie ...

    >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.

    Raczej podejrzewam ten kawalek w C, co on tam wyprawia, jak mu
    wskaznik na strukture przekazesz.

    >> 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

    ; jesli te pushax, pusha0 dotycza programowego stosu CC, to istotnie
    az tak bardzo "sprzetowego" stosu nie obciaza.

    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

    J.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: