Seite 1 von 1

globale Konstanten

Verfasst: Do 14. Jun 2012, 09:58
von PIC18F2550
Gibt es eine Möglich keit Konstanten von einem Spinn projekt in ein hinzugefügtes Objekt zu übernehmen?

Code: Alles auswählen

CON
  _clkmode = xtal1 + pll16x
  _xinfreq = 5_000_000

  constante1 = 100   --> "FullduplexSerial"

OBJ
  dbg   : "FullduplexSerial"

PUB  Start | nstr, ch, param
  dbg.start(1, 0, 0, 9600)
  repeat
Oder geht das nur mit Variabeln mit @variabel1.

Am schönsten währe es wenn die Konstanten in einer Datei währen und diese mit file Eingefügt würden.

Re: globale Konstanten

Verfasst: Do 14. Jun 2012, 15:32
von drohne235
Du kannst Konstanten in ein Objekt packen und an den verschiedenen Stellen einbinden. Dabei gehen nur ein paar Byte verloren, da man immer mindestens eine PUB-Routine benötigt, die aber leer sein kann. Ist in meinen Augen locker zu verschmerzen. Ich bin gerade dabei das so in mental zu integrieren. Wird wohl auch mal in TriOS einsickern. Ist cool die Kommandocodes von Administra und Bellatrix, sowie die Signaldefinitionen und den ganzen Krempel global für alle drei Chips zu verwenden und nur in einer Datei zu pflegen.


Die Einbindung sieht dann zum Beispiel so aus:

Code: Alles auswählen

OBJ
  gc         : "m-glob-con"

CON
  VGA_BASPORT  = gc#bel_vgabase                          'vga startport

Re: globale Konstanten

Verfasst: Do 14. Jun 2012, 16:34
von PIC18F2550
Deine Version macht Sinn wenn in in dem Spinn-Code die Namen der Konstanten von der der m-glob-con abweichen.

Da ich noch nicht so große Dateien habe werde ich das etwas anderst handhaben.

Code: Alles auswählen

CON
  _clkmode = xtal1 + pll16x
  _xinfreq = 5_000_000
OBJ
  co   : "sys-con"
PUB  Start | t
  t := co#const1
  repeat

Code: Alles auswählen

PUB dummy
CON
  const1 = 100
  const2 = 100
Danke für den Tip :D

Re: globale Konstanten

Verfasst: Do 14. Jun 2012, 17:05
von PIC18F2550
Was ist hier Falsch :?:
Main.spin:

Code: Alles auswählen

CON
  _clkmode = xtal1 + pll16x
  _xinfreq = 5_000_000
OBJ
  co   : "sys-con"
  mod  : "modul"
PUB  Start | t
  t := co#const1
  repeat
sys-con.spin:

Code: Alles auswählen

PUB dummy
CON
  const1 = 100
  const2 = 100
modul.spin:

Code: Alles auswählen

OBJ
  co1   : "sys-con"
PUB  modu
    repeat
Fehlermeldung von BST:
sys-con - Relocation pointer error!! 0000
sys-con - Objekt Position is negative! - This binary will not work - Report thes please!

Re: globale Konstanten

Verfasst: Do 14. Jun 2012, 23:37
von kuroneko
PIC18F2550 hat geschrieben:Fehlermeldung von BST:
sys-con - Relocation pointer error!! 0000
sys-con - Objekt Position is negative! - This binary will not work - Report thes please!
Compiler bug. Funktioniert hier (bst 0.19.4-pre14, bstc 0.15.4-pre11, win32).

Re: globale Konstanten

Verfasst: Fr 15. Jun 2012, 08:21
von PIC18F2550
:shock: binn ich aber RETRO :lol:

DANKE!