decoder für zweipolx4

Antworten
30-60
Beiträge: 4
Registriert: Fr 14. Jul 2023, 17:55
decoder für zweipolx4

Beitrag von 30-60 » Fr 2. Feb 2024, 10:52

Hallo!
kann mir einer mir helfen mit dem Decoder für zweipolx4,ich möchte ihn neu compilieren,aber es kommen immer Fehler welche Dateien brauche
ich noch.

Gruß Thomas

Benutzeravatar
Sven
Administrator
Beiträge: 880
Registriert: Mo 7. Mär 2011, 15:13
Kontaktdaten:
Re: decoder für zweipolx4

Beitrag von Sven » Sa 3. Feb 2024, 19:57

Hallo,

warum neu compilieren? Die HEX Files gibt es ja schon.

Aber wenn es denn sein muss: sollten Dateien fehlen, dann sagt der Compiler ja, welche Dateien fehlen.

Als Input wäre interessant:
- welcher Compiler
- welches ASM File
- welche #defines sind aktiv
- welche Fehler schmeißt der Compiler raus

Sven

30-60
Beiträge: 4
Registriert: Fr 14. Jul 2023, 17:55
Re: decoder für zweipolx4

Beitrag von 30-60 » So 4. Feb 2024, 11:27

hallo!
Habe versucht die datei von Sven Brandt (GordonShumway) (sub_wz_zweipolx4.asm) zu Compuliern aber ohne erfolg.

; ********************************************************
; ** Version: **
; ********************************************************
; ** Include-File zu dekoder.asm **
; ********************************************************
; ** **
; ********************************************************
; Copyright (C) 2006/07 Sven Brandt
; bearbeitet für 4fach zweipol von GordonShumway (02.03.2011)
; ********************************************************
; Prozessorbeschaltung:
; RA0=PLED
; RA1=Enable
; RA2=COMMAND
; RA3=Programmiertaster
; RA4=W4r
; RA5=W3r

; RC0=W1g
; RC1=W2g
; RC2=W2r
; RC3=W1r
; RC4=W3g
; RC5=W4g
; ********************************************************

; ****************************
; ** nur fuer weichzwei **
; ****************************
R_VERZ equ 40h ; Verzögerungs-Counter 1
R_MAKESLOW equ 41h ; Verzögerungs-Counter 1

; ********************
; *** INIT-Dekoder ***
; ********************
init_dekoder
bsf PORTA,0 ; PowerLED an

return

; ********************
; *** ADR Gruen-#1 ***
; ********************
gruen_1

bcf PORTA,0 ; PowerLED aus
bsf PORTA,1 ; Enable HI
bcf PORTC,3 ; W1r LO
bsf PORTC,0 ; W1g HI

clrf TMR1L
clrf TMR1H ; clear Timer1 for Time-Out
bcf PIR1,TMR1IF ; clear Flag
movf R_MAKESLOW,W ; Verzögerungswert aus EEPROM
movwf R_VERZ
return

; ********************
; *** ADR Gruen-#2 ***
; ********************
gruen_2

bcf PORTA,0 ; PowerLED aus
bsf PORTA,1 ; Enable HI
bcf PORTC,2 ; W2r LO
bsf PORTC,1 ; W2g HI

clrf TMR1L
clrf TMR1H ; clear Timer1 for Time-Out
bcf PIR1,TMR1IF ; clear Flag
movf R_MAKESLOW,W ; Verzögerungswert aus EEPROM
movwf R_VERZ
return

; ********************
; *** ADR Gruen-#3 ***
; ********************
gruen_3

bcf PORTA,0 ; PowerLED aus
bsf PORTA,1 ; Enable HI
bcf PORTA,5 ; W3r LO
bsf PORTC,4 ; W3g HI

clrf TMR1L
clrf TMR1H ; clear Timer1 for Time-Out
bcf PIR1,TMR1IF ; clear Flag
movf R_MAKESLOW,W ; Verzögerungswert aus EEPROM
movwf R_VERZ
return

; ********************
; *** ADR Gruen-#4 ***
; ********************
gruen_4

bcf PORTA,0 ; PowerLED aus
bsf PORTA,1 ; Enable HI
bcf PORTA,4 ; W2r LO
bsf PORTC,5 ; W2g HI

clrf TMR1L
clrf TMR1H ; clear Timer1 for Time-Out
bcf PIR1,TMR1IF ; clear Flag
movf R_MAKESLOW,W ; Verzögerungswert aus EEPROM
movwf R_VERZ
return




; ******************
; *** ADR Rot-#1 ***
; ******************
rot_1

bcf PORTA,0 ; PowerLED aus
bsf PORTA,1 ; Enable HI
bcf PORTC,0 ; W1g LO
bsf PORTC,3 ; W1r HI

clrf TMR1L
clrf TMR1H ; clear Timer1 for Time-Out
bcf PIR1,TMR1IF ; clear Flag
movf R_MAKESLOW,W ; Verzögerungswert aus EEPROM
movwf R_VERZ
return

; ******************
; *** ADR Rot-#2 ***
; ******************
rot_2

bcf PORTA,0 ; PowerLED aus
bsf PORTA,1 ; Enable HI
bcf PORTC,1 ; W2g LO
bsf PORTC,2 ; W2r HI

clrf TMR1L
clrf TMR1H ; clear Timer1 for Time-Out
bcf PIR1,TMR1IF ; clear Flag
movf R_MAKESLOW,W ; Verzögerungswert aus EEPROM
movwf R_VERZ
return

; ******************
; *** ADR Rot-#3 ***
; ******************
rot_3

bcf PORTA,0 ; PowerLED aus
bsf PORTA,1 ; Enable HI
bcf PORTC,4 ; W3g LO
bsf PORTA,5 ; W3r HI

clrf TMR1L
clrf TMR1H ; clear Timer1 for Time-Out
bcf PIR1,TMR1IF ; clear Flag
movf R_MAKESLOW,W ; Verzögerungswert aus EEPROM
movwf R_VERZ
return

; ******************
; *** ADR Rot-#4 ***
; ******************
rot_4

bcf PORTA,0 ; PowerLED aus
bsf PORTA,1 ; Enable HI
bcf PORTC,5 ; W4g LO
bsf PORTA,4 ; W4r HI

clrf TMR1L
clrf TMR1H ; clear Timer1 for Time-Out
bcf PIR1,TMR1IF ; clear Flag
movf R_MAKESLOW,W ; Verzögerungswert aus EEPROM
movwf R_VERZ
return

; ******************
; *** ADR Rot-#5 ***
; ******************
rot_5
return

; ******************
; *** ADR Rot-#6 ***
; ******************
rot_6
return

; ******************
; *** ADR Rot-#7 ***
; ******************
rot_7
return

; ******************
; *** ADR Rot-#8 ***
; ******************
rot_8
return

; *******************
; *** Off-Command ***
; *******************
offcommand

bsf PORTA,0 ; PowerLED an
clrf PORTA ;PortA aus
clrf PORTC ;PortC aus

return

;*********************************
;** Routine: save **
;** Signalisierung mit jew. **
;** Ausgang **
;*********************************
; ********************
; *** Adresse #1 ***
; ********************
save_01

comf R_TGLA,W
andlw b'00000001' ;PowerLED blinkt
movwf PORTA
comf R_TGLA,W
andlw b'00001001' ;W1g/W1r toggle
movwf PORTC
bsf PORTA,1 ; Enable Hi
movwf R_TGLA
return

; ********************
; *** Adresse #2 ***
; ********************
save_02

comf R_TGLA,W
andlw b'00000001' ;PowerLED blinkt
movwf PORTA
comf R_TGLA,W
andlw b'00000110' ;W2g/W2r toggle
movwf PORTC
bsf PORTA,1 ; Enable Hi
movwf R_TGLA
return

; ********************
; *** Adresse #3 ***
; ********************
save_03

comf R_TGLA,W
andlw b'0010001' ;PowerLED blinkt/ W3r toggle
movwf PORTA
comf R_TGLA,W
andlw b'00010000' ;W3g toggles
movwf PORTC
bsf PORTA,1 ; Enable Hi
movwf R_TGLA
return

; ********************
; *** Adresse #4 ***
; ********************
save_04
comf R_TGLA,W
andlw b'00010001' ;PowerLED blinkt/ W4r toggle
movwf PORTA
comf R_TGLA,W
andlw b'00100000' ;W4g toggle
movwf PORTC
bsf PORTA,1 ; Enable Hi
movwf R_TGLA
return

; ************************
; *** save_toggle_start **
; ************************
; für Dekoder, die im SAVE-Modus mit 2 Ausgängen alternierend togglen,
; muss hier ein Ausgang für Adresse #1 eingeschaltet werden.

save_toggle_start
;movlw b'00001100' ; #0, #1 OUTPUT
;bsf STATUS,RP0 ; -> BANK 1
;movwf TRISA ; set TRIS.Register
;bcf STATUS,RP0 ; -> BANK 0

clrf R_TGLA
bsf R_TGLA,0
return

; ************************
; *** save_toggle_next ***
; ************************
; für Dekoder, die im SAVE-Modus mit 2 Ausgängen alternierend togglen,
; muss hier für die entsprechende Adress-Nummer jeweils ein Ausgang
; eingeschaltet werden.

save_toggle_next
;movlw b'00001100' ; #4, #5 OUTPUT
;bsf STATUS,RP0 ; -> BANK 1
;movwf TRISA ; set TRIS.Register
;bcf STATUS,RP0 ; -> BANK 0

clrf R_TGLA
bsf R_TGLA,1
return

;*******************************************
;** Routine: status_to_output **
;** beim Start und nach dem Speichern **
;** Ausgänge schalten gemäss R_STATUS **
;*******************************************
status_to_output
return

Gruß Thomas

Benutzeravatar
Sven
Administrator
Beiträge: 880
Registriert: Mo 7. Mär 2011, 15:13
Kontaktdaten:
Re: decoder für zweipolx4

Beitrag von Sven » So 4. Feb 2024, 12:13

Hi,

das ist ja auch nur ein Include File, das zusätzliche Routinen enthält.

Das Fundament der Dekoder ist die dekoder.asm Datei

Sven

30-60
Beiträge: 4
Registriert: Fr 14. Jul 2023, 17:55
Re: decoder für zweipolx4

Beitrag von 30-60 » So 4. Feb 2024, 12:15

Könntest du mir seagen was ich machen muß danke.

Gruß thomas

Benutzeravatar
Sven
Administrator
Beiträge: 880
Registriert: Mo 7. Mär 2011, 15:13
Kontaktdaten:
Re: decoder für zweipolx4

Beitrag von Sven » So 4. Feb 2024, 12:29

Es wäre schon hilfreich, wenn Du auch mal meine Fragen beantworten würdest.
Ich wiederhole diese gerne nochmal:

1) Warum willst Du compilieren?
2) Was für einen Compiler verwendest Du? Das ist wichtig, weil wenn Du den falschen Compiler nimmst, können wir hier jede weitere Diskussion sparen+

Ansonsten im Schnelldurchlauf:
- Projekt in MPLAB anlegen mit den passenden Parametern wie Prozessor etc.
- dekoder.asm einbinden
- Compiler Einstellungen überprüfen
- #defines Einstellungs in Dekoder.asm anpassen
- die nötigen Include-Files in das Projekt-Verzeichniss kopieren

Ein paar Hinweise findest Du auch in AB-2015-01
https://www.digital-bahn.de/ab/ab.htm

Sven

30-60
Beiträge: 4
Registriert: Fr 14. Jul 2023, 17:55
Re: decoder für zweipolx4

Beitrag von 30-60 » So 4. Feb 2024, 13:43

ich habe keine Hex Datei.
•mpasm (v5.87) C:\Microchip\MPLABX\v5.35\mpasmx
•MPLAB X IDE v5.35

Gruß Thomas

Benutzeravatar
Sven
Administrator
Beiträge: 880
Registriert: Mo 7. Mär 2011, 15:13
Kontaktdaten:
Re: decoder für zweipolx4

Beitrag von Sven » So 4. Feb 2024, 19:29

Dann wäre ja die korrekte Frage: wo finde ich die HEX Datei für den Zweipol

Und die Antwort ist:
https://www.digital-bahn.de/bau_weiche/ ... m#download

Sven


Antworten