Chip-ID in BASCOM verwenden?

Dieses Thema im Forum "Programmierung und Bascom IDE" wurde erstellt von LotadaC, 23. Dezember 2018.

  1. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    3.047
    Zustimmungen:
    54
    Punkte für Erfolge:
    48
    Sprachen:
    BascomAVR, 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)...
     
    #1 LotadaC, 23. Dezember 2018
    Zuletzt bearbeitet: 12. Januar 2019
  2. addi

    addi Mitglied

    Registriert seit:
    2. September 2013
    Beiträge:
    115
    Zustimmungen:
    4
    Punkte für Erfolge:
    18
    Sprachen:
    BascomAVR, C, Assembler
  3. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    3.047
    Zustimmungen:
    54
    Punkte für Erfolge:
    48
    Sprachen:
    BascomAVR, Assembler
    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

    Unsere immer weiter wachsende Community beschäftigt sich mit Themenbereichen rund um Mikrocontroller- und Kleinstrechnersysteme. Neben den Themen Design von Schaltungen, Layout und Software, beschäftigen wir uns auch mit der herkömmlichen Elektrotechnik.

    Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  • Coffee Time

    Unser makerconnect-Team arbeitet hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und unser eigener makerconnekt-Server regelmäßig gewartet wird. Wir nehmen das Thema Datensicherung und Datenschutz sehr ernst und sind hier sehr aktiv, auch sorgen wir uns darum, dass alles Drumherum stimmt!

    Dir gefällt das Forum und die Arbeit unseres Teams und du möchtest es unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft, unser Team freut sich auch über eine Spende für die Kaffeekasse :-)
    Vielen Dank!
    Dein makerconnect-Team

    Spende uns! (Paypal)
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren und die Seite optimal für dich anzupassen. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden