-
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
- 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?
- FV--> ciepła woda w kranie
- Szok
Najnowsze wątki
- 2025-07-14 Awaria VM?
- 2025-07-14 Gdańsk => Programista Kotlin <=
- 2025-07-14 Warszawa => Junior Rekruter <=
- 2025-07-14 Warszawa => Specjalista rekrutacji IT <=
- 2025-07-14 Wkłady do zniczy...
- 2025-07-14 Warszawa => Specjalista ds. Sprzętu Komputerowego <=
- 2025-07-14 Re: PO chroniło i chroni policyjnych bandziorów [zawiasy za katowanie obywatela (Poznań czerwiec 2012)]
- 2025-07-14 Warszawa => International Freight Forwarder <=
- 2025-07-14 Warszawa => Recruiter 360 <=
- 2025-07-14 Re: Rz?Âd ZAKAZUJE magazyn?Â?w energii ?!! Nowe prawo od 14 lipca to SZOK! ??Â
- 2025-07-14 Warszawa => Sales Assistant <=
- 2025-07-13 Fałszywe alerty
- 2025-07-12 dlaczego gadacie z tym debilem
- 2025-07-13 Unia Europejska przygotowuje nowy podatek
- 2025-07-13 Unia Europejska przygotowuje nowy podatek