-
Data: 2018-08-12 21:43:37
Temat: Re: Płytka z MOS6502 niestabilna do czasu dotknięcia masy
Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 12.08.2018 21:19, Sebastian Biały wrote:
> Która była ładowana z czego?
Pętla opóźniająca była osobnym podprogramem, który był wywoływany po
każdym zmianie stanu diody. Wewnątrz tego podprogramu znajdowały się
właściwie tylko dwie pętle, jedna zagnieżdżona w drugiej. Pierwsza
operowała na rejestrze X, druga na Y. Każdy z nich był inicjowany
wartością 0xFF i po każdym przejściu zmniejszany o jeden.
> Ponadto jednak w tego typu projekcie wykluczyłbym najpierw hardware.
> 6502 można solidnie przetaktować przez zniekształcony sygnał zegarowy,
> wtedy częśc funkcjonalności nie działa a takim małym programie czasem
> nie widać że np. się sam resetuje. Jak wygląda generator zegara?
To była moja pierwsza myśl. Na oscyloskopie wszystko wygląda ok. To
znaczy sygnał zegarowy bezpośrednio na wyjściu generatora SG51P jest
minimalnie "postrzępiony" na górze, jednak po przejściu przez dzienlnik
na 74HCT74 robi się z tego całkiem ładny sygnał, niemalże kwadrat z
lekko zaokrąglonymi krawędziami.
> Niezainicjowania zmienna/rejestr, błąd w sofcie. Mozliwe, choć watpliwe
> że wina asemblera/kompilatora. Czego używasz?
>
> Pokaż źródła jednego i drugiego. Jeszcze coś pamiętam z asm 6502.
Przy większych projektach używam cc65, ale tutaj posłużyłem się prostym
webowym narzędziem asm80.com.
Pierwszy program - ten, z któ(C)ym były problemy:
CTRL EQU $0BC00
.ORG $0C000
CLD
LDX #$FF
TXS
LOOP:
LDA #$04
STA CTRL
JSR DELAY
LDA #$80
STA CTRL
JSR DELAY
JMP LOOP
DELAY:
LDX $FF
DELAY_LOOP1:
LDY $FF
DELAY_LOOP2:
NOP
DEY
BNE DELAY_LOOP2
DEX
BNE DELAY_LOOP1
RTS
.ORG $FFFE
DW $0C000
Drugi program - ten, który teraz zdaje się działać prawidłowo:
TRL EQU $0BC00
.ORG $C000
INIT:
LDX #$FF
TXS
LDA #$80
STA CTRL
LDA #$01
STA DIODE
LDA #$FF
STA TIMER
LDA #$FF
STA TIMER+1
LOOP:
JSR HANDLE_TIMER
JMP LOOP
HANDLE_TIMER:
DEC TIMER
BNE HT_RET
LDA #$FF
STA TIMER
DEC TIMER+1
BNE HT_RET
LDA #$FF
STA TIMER+1
; tutaj wykonujemy nasz kod
LDA DIODE
BEQ SET_DIODE
LDA #$04
STA CTRL
LDA #$00
STA DIODE
JMP HT_RET
SET_DIODE:
LDA #$80
STA CTRL
LDA #$01
STA DIODE
HT_RET:
RTS
IRQ:
RTI
NMI:
RTI
.ORG $0200
TIMER: DS 2
DIODE: DS 1
.ORG $FFFA
DW NMI
DW INIT
DW IRQ
Następne wpisy z tego wątku
- 12.08.18 21:51 Atlantis
- 12.08.18 22:04 Sebastian Biały
- 12.08.18 22:12 Sebastian Biały
- 12.08.18 22:21 J.F.
- 12.08.18 22:23 Atlantis
- 12.08.18 22:31 Atlantis
- 13.08.18 13:43 J.F.
- 14.08.18 12:26 Atlantis
- 14.08.18 14:43 Atlantis
Najnowsze wątki z tej grupy
- pozew za naprawę sprzętu na youtube
- gasik
- Zbieranie danych przez www
- reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
- Problem z odczytem karty CF
- 74F vs 74HCT
- Newag ciąg dalszy
- Digikey, SN74CBT3253CD, FST3253, ktoś ma?
- Szukam: czujnik ruchu z możliwością zaączenia na stałe
- kabelek - kynar ?
- Podnieść masę o 0.6V
- Moduł BT BLE 5.0
- Pomiar amplitudy w zegarku mechanicznym
- ale zawziętość i cierpliwość
- Chiński elektrolizer tester wody
Najnowsze wątki
- 2025-01-06 Jeździ, skręca, hamuje
- 2025-01-06 Białystok => System Architect (Java background) <=
- 2025-01-06 Gliwice => Specjalista ds. public relations <=
- 2025-01-06 Białystok => Solution Architect (Java background) <=
- 2025-01-06 Zielona GĂłra => Konsultant WdroĹźeniowy Comarch XL/Optima (KsiÄgowoĹ
- 2025-01-06 Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- 2025-01-06 Ostrów Wielkopolski => Area Sales Manager OZE <=
- 2025-01-06 Do IO i innych elektrooszolomow, tu macie prawdziwe smrody
- 2025-01-06 Białystok => Full Stack .Net Engineer <=
- 2025-01-06 Kraków => Business Development Manager - Network and Network Security
- 2025-01-06 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-01-06 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-06 Lublin => Programista Delphi <=
- 2025-01-06 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-06 śnieg