decoder für zweipolx4
-
- Beiträge: 4
- Registriert: Fr 14. Jul 2023, 17:55
decoder für zweipolx4
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
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
- Sven
- Administrator
- Beiträge: 880
- Registriert: Mo 7. Mär 2011, 15:13
- Kontaktdaten:
Re: decoder für zweipolx4
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
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
-
- Beiträge: 4
- Registriert: Fr 14. Jul 2023, 17:55
Re: decoder für zweipolx4
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
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
- Sven
- Administrator
- Beiträge: 880
- Registriert: Mo 7. Mär 2011, 15:13
- Kontaktdaten:
Re: decoder für zweipolx4
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
das ist ja auch nur ein Include File, das zusätzliche Routinen enthält.
Das Fundament der Dekoder ist die dekoder.asm Datei
Sven
-
- Beiträge: 4
- Registriert: Fr 14. Jul 2023, 17:55
Re: decoder für zweipolx4
Könntest du mir seagen was ich machen muß danke.
Gruß thomas
Gruß thomas
- Sven
- Administrator
- Beiträge: 880
- Registriert: Mo 7. Mär 2011, 15:13
- Kontaktdaten:
Re: decoder für zweipolx4
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
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
-
- Beiträge: 4
- Registriert: Fr 14. Jul 2023, 17:55
Re: decoder für zweipolx4
ich habe keine Hex Datei.
•mpasm (v5.87) C:\Microchip\MPLABX\v5.35\mpasmx
•MPLAB X IDE v5.35
Gruß Thomas
•mpasm (v5.87) C:\Microchip\MPLABX\v5.35\mpasmx
•MPLAB X IDE v5.35
Gruß Thomas
- Sven
- Administrator
- Beiträge: 880
- Registriert: Mo 7. Mär 2011, 15:13
- Kontaktdaten:
Re: decoder für zweipolx4
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
Und die Antwort ist:
https://www.digital-bahn.de/bau_weiche/ ... m#download
Sven