Chip-ID in BASCOM verwenden?

LotadaC

Sehr aktives Mitglied
22. Jan. 2009
3.547
70
48
Marwitz
Sprachen
  1. BascomAVR
  2. Assembler
Hi,

kann man in BASCOM irgendwie sinnig den verwendeten Controller identifizieren?
Angegeben wird er ja über die "$regfile"-Direktive (bzw irgendeine Default-Voreinstellung).

Im Regfile selbst findet man zwar sowohl:
Code:
up=tiny2313                 ; internal bascom Name
als auch:
Code:
DEVID=1E910A            ; device ID
, aber da komme ich in BASCOM selbst nicht wirklich ran.
Lediglich das hier läßt sich verwenden:
Code:
_CHIP= 31               ; FOr backwards compatibility
Aber backwards compatibility klingt schon mal nicht sehr überzeugend - abgesehen davon: wie ist die Zahl zu interpretieren? Die Device Signature wäre eindeutig, unter dem Namen könnte man sich auch irgendwas zusammenreimen - aber 31 (0x1F)?
Beim Tiny4313 wärs dann die 49 (0x31)

Kennt irgendjemand 'ne diesbezügliche Liste (oder müßte man alle regfiles durchlesen (lassen))?

Hintergrund wäre, daß man dann Codeabschnitte in Abhängigkeit des verwendeten Controllers bedingt kompilieren lassen könnte - idealerweise Codeabschnitte, die selbst in irgendeiner externen Bibliothek liegen (->Werner's Thread)...
 
Zuletzt bearbeitet:
Hmm… finde da nichts brauchbares...

Da gehts doch eher um das auslesen eines echten Controllers (also Hardware). Sowas kannste mit dem Atmel Studio ja auch machen (mit Bascom sicher auch). Das könnte ich - Motivation vorrausgesetzt - wohl auch meiner STK500-Ressource beibringen...

Mir gings aber um die reine Software, genauer um den Code in der BASCOM-IDE.
In BASCOM gibts aus den Options heraus global erstmal einen festgelegten Controller als Target. Diese Vorgabe wird durch eine Regfile-Direktive im eigentlichen Code ersetzt/überschrieben.
Und in dem dort zugewiesenen File findet die IDE dann alle nötigen Informationen, um zB das entsprechende Pinout oder das Datenblatt rechts zu zeigen, aber auch für seinen Simulator usw.
Im File werden diverse Konstanten generiert, auf die man im Code dann zugreifen kann, zB diese _CHIP - Nummer - aber auf die Angaben, die gut auswertbar gewesen wären hat der Code (also als BASCOM-Programmierer) keinen Zugriff.

Ich kann mit bedingter Compilierung Codeblöcke in Abhängigkeit von "_CHIP" unterschiedlich erzeugen lassen - zumindest innerhalb des Programmes selbst. Ob das auch in einer eingebundenen Bibliothek geht, weiß ich nicht (also ob im Code/Quelltext der Bibliothek die _CHIP abgefragt werden kann, die in der Regfile-Direktive im eigentlichen Programm definiert wird. Bzw ob ein inkludierter Codeblock dann _CHIP-abhängig unterschiedliche Routinen aus einer externen Bibliothek nutzen kann (oder unterschiedliche Bibliotheken einbinden).

Natürlich könnte ich mir alle Regfiles ansehen, und selbst 'ne Liste erstellen (Controller xyz=_CHIP abc) - aber das ist irgendwie ... unelegant.
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)