-
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
- Lustra w maszynie ASML
- DC blocker i buczące toroidy
- Problemy TSMC cd
- Detektor
- Może tutaj się uda: [NTG] Elewacja / dziurawa Churka
- Falownik jednofazowy a żarówka
- Agregat i "legalność" instalacji
- Uziom
- (Ponownie) odkryto, że ładowanie pulsacyjne robi dobrze
- driver led ?
- Długość wtyku zasilającego ?5.5mm
- Szukam przetwornicy 55-40V>8-8.2V 3-4A
- Kindle - pierwsze wrażenia
- Transformator TS90/16, uzwojenia połączone szeregowo na stałe, z asymetrycznym odczepem, napięcia 16V i 39V a prostowanie pełnookresowe
- regulacja prądu ?
Najnowsze wątki
- 2024-04-29 Gdańsk => UX/UI Designer <=
- 2024-04-29 Gdańsk => AI Specialist <=
- 2024-04-29 frankowicze odcinek NNN
- 2024-04-29 Warszawa => Specjalista ds. Cyberbezpieczeństwa <=
- 2024-04-29 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2024-04-29 Zielona Góra => Inżynier R&D Energoelektronik <=
- 2024-04-29 Warszawa => Google Ads Freelancer <=
- 2024-04-28 wymiana przewodu od licznika do mieszkania
- 2024-04-28 Lustra w maszynie ASML
- 2024-04-28 Elektryk przytarł podłogę
- 2024-04-27 Nowy, "szybki "komputer AsRock nie posiada modułu TPM
- 2024-04-27 Nowy, "szybki "komputer AsRock nie posiada modułu TPM
- 2024-04-27 Warszawa => Inżynier DevOps (projekt JP) <=
- 2024-04-27 Warszawa => Senior Account Manager (on-site) <=
- 2024-04-27 Wrocław => Dyrektor Sprzedaży (branża usług/produktów IT) <=