HBasic

Du hast ein Betriebssystem für den Hive geschrieben oder beschäftigst dich mit den grundlegenden Systemfunktionen, dann bist du hier richtig!
Benutzeravatar
unick59
Beiträge: 134
Registriert: Di 23. Jun 2009, 11:14
Wohnort: Heideblick

Re: HBasic

Beitrag von unick59 »

Hallo Pic,
ohne das ich den Code aus dem späteren Posting angesehen habe:
Im Ablauf würde ich noch folgendes machen:
Reset
1.COG Spinn startet und schreibt in long Zelle $7FFC -> $FFFFFFFF (Sperrwert)
1.COG Startet 2.COG (PASM)

und wartet bis 2.COG gestartet ist.

2.COG liest long Zelle $7FFC und wartet in schleife bis inhalt $7F7FF7F7 wird.
1.COG schreibt in long Zelle $7FFC -> $7F7FF7F7 (Startwert)
1.COG cogstop(cogid) und ist weg
2.COG Zählschleife(1s) zum Warten bis 1.COG richtig gestopt ist
... Programm übertragen von Zahlen 1-4 an Bellatrix

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

Re: HBasic

Beitrag von PIC18F2550 »

Ich warte schon hier auf COG2.

Code: Alles auswählen

  ifnot cognew(@runtime0, 0) + 1
und hier auch nochmal

Code: Alles auswählen

  waitcnt(20000000 + cnt)

Code: Alles auswählen

'  cogstop(cogid)
habe ich herausgenommen da es der letzte Befehl ist und der 1.COG (SPIN) sowiso in Stop geht.
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
kuroneko
Beiträge: 202
Registriert: Sa 22. Okt 2011, 13:05
Wohnort: FN, Germany

Re: HBasic

Beitrag von kuroneko »

@PIC18F2550: Wenn es schiefgeht ist die "0" Ausgabe immer an der gleichen Stelle (Zeile/Spalte)?
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: HBasic

Beitrag von PIC18F2550 »

Ja
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
kuroneko
Beiträge: 202
Registriert: Sa 22. Okt 2011, 13:05
Wohnort: FN, Germany

Re: HBasic

Beitrag von kuroneko »

PIC18F2550 hat geschrieben:Ja
Zeile sieht aus wie 2 (0..N), Spalte ist 'n bisschen schwer zu erkennen auf dem Bild ...
Benutzeravatar
kuroneko
Beiträge: 202
Registriert: Sa 22. Okt 2011, 13:05
Wohnort: FN, Germany

Re: HBasic

Beitrag von kuroneko »

Kannst Du mal in CLS die insn add temp2, #$20 in add temp2, #$40 (oder irgendein anderes druckbares Zeichen) aendern (alles andere so lassen) und dann den Fehlerfall protokollieren?
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: HBasic

Beitrag von PIC18F2550 »

Ausgegeben werden in zeile 1 "01234"+$0

Wede in der Print routine mal was dazu addieren. Da sieht mann bestimmt mehr.

Komme erst heute Abend dazu. :(
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: HBasic

Beitrag von PIC18F2550 »

kuroneko hat geschrieben:Kannst Du mal in CLS die insn add temp2, #$20 in add temp2, #$40 (oder irgendein anderes druckbares Zeichen) aendern (alles andere so lassen) und dann den Fehlerfall protokollieren?
Dein Tip hat schon besserung gebracht die Seltsamen Ausgaben stammten von Bellatrix da war wohl noch nicht alles richtig geladen.
VGA.spin
(4.55 KiB) 414-mal heruntergeladen
VGA_T0.spin
(38.63 KiB) 417-mal heruntergeladen

Code: Alles auswählen

PUB start
  long[T0#LSTAT]:=$FFFFFFFF 'Stop all COG's
  byte[T0#BCKM]:=%111       'ckm
  byte[T0#BCMX]:=40         'cmx
  byte[T0#BCMY]:=30         'cmy
  byte[T0#BCMM]:=%000       'cmm
  if T0.start
    waitcnt(200000000 + cnt)  '<<-------------------------- 
    if T0.start2
'     if G0.start
'       if KY.start
'         if MS.start
            long[T0#LSTAT]:=$7F7FF7F7        'Run all COG's
            cogstop(cogid)
Die Zeit scheint mir etwas hoch sollte der rückgabe wert (if) nicht erst generiert werden?

Wielange braucht ein COG vom Starten bis er mit der Arbeit beginnt?(takte 2x512)
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: HBasic

Beitrag von PIC18F2550 »

Naja doch noch nicht alles so wie es sein sollte.
Nach einem Reset scheint alles richtig zu sein.
2013-01-14_23-54-21_47.jpg
nur wenn ich den neuen Code flashe dann kommt noch das raus.
2013-01-14_23-55-16_8.jpg
Ich werd erstmal sehen wie ich die warteschleifen aus dem Spinn entfernen kann.
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
kuroneko
Beiträge: 202
Registriert: Sa 22. Okt 2011, 13:05
Wohnort: FN, Germany

Re: HBasic

Beitrag von kuroneko »

PIC18F2550 hat geschrieben:Wielange braucht ein COG vom Starten bis er mit der Arbeit beginnt?(takte 2x512)
cognew kommt so gut wie gleich wieder zurueck. Der gestartete cog nimmt erst nach 512x16 Takten seine Arbeit auf (496 insn, 16 blanks).
Antworten