Propeller in 19"

Alles was Du selbst gebaut hast, hier herein. Das Projekt muss allerdings mit einem oder mehreren Parallax Propeller µC realisiert worden sein.

Meinung zu solchen Projekten.

Super das ist die Zukunft
3
11%
Naja hällt sich in Grenzen
2
7%
absolut Unbrauchbar
1
4%
das brauch Ich nicht
3
11%
ist mir zu Aufwendig
3
11%
Ich würde es nachbauen
4
14%
leider incompatibel zum HIVE
3
11%
neue Wege bereiten die Zukunft des HIVES
4
14%
Ich will kein Rack
1
4%
ein RACK ist OK
4
14%
 
Insgesamt abgegebene Stimmen: 28

Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: Propeller in 19"

Beitrag von PIC18F2550 »

VGA zeig her deine Beinchen :mrgreen:.
Die 8 verwackelten zeichen sind die VGA(RGB) Ausgänge
2014-08-10_14-18-17_701.jpg
Bildschirmfoto-Compiler Information-12.png

Code: Alles auswählen

loop
                mov     temp1,  #32
                mov     temp2,  ina
                mov     temp3,  #2
M001
                mov     curx,   temp1
                cmp     temp1,  #8        wz
          if_z  sub     temp3,  #1
                cmp     temp1,  #16       wz
          if_z  sub     temp3,  #1
                cmp     temp1,  #24       wz
          if_z  sub     temp3,  #1
                add     curx,   temp3
                rcr     temp2,  #1        wc
          if_c  call    #pri_1
          if_nc call    #pri_0
                djnz    temp1,  #M001     wz
                jmp     #loop
twait           jmp     #twait
pri_0
                mov     char,   #$30
                call   #M_print
pri_0_ret
                ret
pri_1
                mov     char,   #$31
                call   #M_print
pri_1_ret
                ret
' ---------------------------------------------------------------------
' Ausgabe eines Zeichens an der cursor position ohne weiterschaltung
M_print
                mov     posxy,  home
                sub     posxy,  curx
                cmp     cury,   #0        wz    ' Überspringen wenn 1.zeile
        if_z    jmp     #M_print_002
                mov     temp,   cury
M_print_001
                sub     posxy,  #50
                djnz    temp,   #M_print_001
M_print_002
                wrbyte  char,   posxy
M_print_ret     ret
' ---------------------------------------------------------------------

stat            long    $7FFC                   ' Zeiger auf Statusregister
                                                ' = h7F7FF7F7 --> start
char            long    0
temp            long    0
temp1           long    $00000001               ' System wartet bis start sequenz kommt
temp2           long    $00FFFFFF
temp3           long    0
curx            long    0
cury            long    2
posxy           long    0
home            long    $1FFF
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: Propeller in 19"

Beitrag von PIC18F2550 »

Und wieder ein Krümelchen :mrgreen:
So die Testdaten liegen auf dem BUS jetzt ist erstmal wieder die VGA drann.

Code: Alles auswählen

' ======================================================================================
' SUBROUTINEN : Word auf BUS schreiben
' ======================================================================================
CC_BUS_w_W          rdword  CC_temp1,       CC_db2A         ' 16Bit Word holen
                    jmp     #CC_BUS_w_W_1
' ======================================================================================
' SUBROUTINEN : COMANDO auf BUS schreiben
' ======================================================================================
CC_BUS_w_C          rdlong  CC_temp1,       CC_db2A         ' Commando holen
                    and     CC_temp1,       CC_M_17Bit      ' 17Bit auswählen
CC_BUS_w_W_1        waitpeq CC_IORQ_QT,     CC_IORQ_QT      ' warten bis QT == 1
                    or      outa,           CC_IORQ_CT      ' Steuersignale auf 1
                    andn    outa,           #$1FF           ' Daten auf 0
                    or      outa,           CC_temp1        ' Daten 1 schreiben
                    or      dira,           CC_IORQ_DATA    ' BUS auf Ausgabe schalten
                    andn    outa,           CC_IORQ_WR      ' Schreibcommando
                    waitpeq CC_zero,        CC_IORQ_QT      ' warten bis QT == 0
                    or      outa,           CC_IORQ_WR      ' Schreibcommando rücknahme
                    andn    dira,           CC_IORQ_DATA    ' BUS deaktivieren
                    andn    outa,           #$1FF           ' Daten auf 0
                    or      outa,           CC_IORQ_CT      ' Steuersignale auf 1
                    waitpeq CC_IORQ_QT,     CC_IORQ_QT      ' warten bis QT == 1
CC_BUS_w_C_ret
CC_BUS_w_W_ret      ret                  
CC_IORQ_CT          long  %00001011_00000000_00000000_00000000    ' IO-Control
CC_IORQ_DATA        long  %00001011_00000001_11111111_11111111    ' Datenbus
CC_IORQ_WR          long  %00001010_00000000_00000000_00000000    '/IORQ /WR
CC_IORQ_RD          long  %00001001_00000000_00000000_00000000    '/IORQ /RD

CC_IORQ_QT          long  %00000000_00000010_00000000_00000000    'QT Quittungssignal

CC_zero             long  %00000000_00000000_00000000_00000000    ' == 0
CC_M_17Bit          long  $0001FFFF
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: Propeller in 19"

Beitrag von drohne235 »

Ich muss gestehen, ich verfolge das nicht bis ins letzte Detail, aber habe ein Auge drauf. Aber ich bin gespannt, was es zum nächsten KC-Treffen zu sehen gibt! :)
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: Propeller in 19"

Beitrag von PIC18F2550 »

Erstmal geht es für das Treffen mit der VGA_Karte weiter.
I2C und PCA9555 habe ich schon der Tastaturtreiber wird noch ein Stückchen auf sich warten lassen.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: Propeller in 19"

Beitrag von PIC18F2550 »

Kleiner Gedanke zwischendurch.

Im Moment wird der Befehl dem IO-COG übergeben und bis zu seiner Ausführung gewartet.

Die Änderung besteht darin das der COG die Übernahme der Parameter mit $01 Quittiert.
Das Programm kann jetzt weiterarbeiten und muss nicht mehr warten bis der IO-COG fertig ist.
(hRAM Veränderungen beachten)

Damit Ändert sich der Aufruf in SPIN

1. Testen ob COG frei ist $7FFF == $00 frei / $01 == in Arbeit / >$10 == Befehl (Störung)
2. Wenn $7FFF == $00 schreiben des neuen Befehls in $7FFF
3. Test auf Datenübernahme $7FFF == $01 (wenn nötig)
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: Propeller in 19"

Beitrag von PIC18F2550 »

Da ich die im COG befindlichen Routinen einmal vom Sprungverteiler und auch intern anspreche gab es da erst mal Reichlich Änderungen.
Aber damit binn ich erstmal durch als ab an die VGA die wartet schon. :D

Code: Alles auswählen

CC_CA_2             jmp     #CC_NOP_BEF                           ' $00 (X) nichts Machen
                    call    #Boot_c                               ' $01 ( ) Bootimage laden von EEPROM/SRAM/BUS/....
                    call    #DMA_c                                ' $02 ( ) DMA-Transfer EEPROM/SRAM/BUS... <--> EEPROM/SRAM/BUS...
                    call    #CC_I2C_T100                          ' $03 (X) I²C Clock 100kHz initalisieren
                    call    #CC_I2C_T400                          ' $04 (X) I²C Clock 400kHz initalisieren
                    call    #CC_I2C_sta                           ' $05 (X) I²C Startsequenz
                    call    #CC_I2C_sto                           ' $06 (X) I²C Stopsequenz
                    call    #CC_I2C_rb_ak                         ' $07 (X) I²C Eine Byte lesem
                    call    #CC_I2C_rb_nak                        ' $08 (X) I²C Eine Byte lesem
                    call    #CC_I2C_wb                            ' $09 (X) I²C Eine Byte senden
                    call    #CC_I2C_rs                            ' $0A ( ) I²C Einen String lesem
                    call    #CC_I2C_ws                            ' $0B ( ) I²C Einen String senden
                    call    #CC_I2C_ledrg_00_c                    ' $0C (X) I²C LED R/G off
                    call    #CC_I2C_ledrg_0x_c                    ' $0D (X) I²C LED R/_ off
                    call    #CC_I2C_ledrg_x0_c                    ' $0E (X) I²C LED _/G off
                    call    #CC_I2C_ledrg_11_c                    ' $0F (X) I²C LED R/G on
                    call    #CC_I2C_ledrg_1x_c                    ' $10 (X) I²C LED R/_ on
                    call    #CC_I2C_ledrg_x1_c                    ' $11 (X) I²C LED _/G on
                    call    #CC_I2C_PCA_rd                        ' $12 (X) I²C Config lesen
                    call    #CC_BUS_w_D                           ' $13 (X) DATEN auf BUS schreiben
                    call    #CC_BUS_w_C                           ' $14 (X) COMANDO auf BUS schreiben
                    call    #CC_BUS_r_W                           ' $15 ( ) Word vom BUS lesen
                    call    #CC_BUS_r_C                           ' $16 ( ) COMANDO vom BUS lesen
                    call    #CC_SRAM_r_B                          ' $17 ( ) Byte aus SRAM lesen
                    call    #CC_SRAM_w_B                          ' $18 ( ) Byte in SRAM schreiben
                    call    #CC_SRAM_r_W                          ' $19 (X) Word aus SRAM lesen
                    call    #CC_SRAM_w_W                          ' $1A (X) Word in SRAM schreiben
                    call    #CC_SRAM_r_L                          ' $1B (X) Long aus SRAM lesen
                    call    #CC_SRAM_w_L                          ' $1C ( ) Long in SRAM schreiben
                    call    #CC_SRAM_r_S                          ' $1D ( ) String aus SRAM lesen
                    call    #CC_SRAM_w_S                          ' $1E ( ) String in SRAM schreiben
                    jmp     #CC_ERROR_1                           ' $1F (X) Commandofehler
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: Propeller in 19"

Beitrag von PIC18F2550 »

:x Hausgemachtes Problem mit Reset.

Im Moment hängen alle Propeller am Rückwandbus gemeinsam an Reset.
Bespiele ich einen Propeller neu löst es bei allen ein Reset aus das ist bei der Entwicklung der Software doof.

Um das Problem zu umgehen werde ich beim neuen Rückwandbus die Resetleitung mit einer Brücke an den Propplug und Steckverbinder verbinden.

Wenn der Jumper gesteckt ist kann kein Propplug gesteckt werden.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: Propeller in 19"

Beitrag von PIC18F2550 »

:( Der Transfair zur VGA scheint zu gehen nur wird jedes Commando/Daten 2x ausgeführt.

Die Quelle habe ich noch nicht ausmachen können da dieses Fehlerbild bei den anderen Commandos/Daten keine erkennbaren zustände erreicht.

Ich werde heute Abend mal die einzelnen Schritte neu erstellen mal sehen ob da ein Fehler drin steckt.

Aber erst mal wird der Resetbus aufgetrennt damit ich mit SimpleIDE und BST vernünftig arbeiten kann.

<<Der sprungverteiler ist es erstmal nicht. so muss ich mich auf das Busprotokoll konzentrieren :x >>
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Antworten