Forum: Compiler & IDEs BASCOM program für verschiedene AVRs in einem Program?


von AVRler (Gast)


Lesenswert?

Huhu!

Angenommen, ich schreibe ein BASCOM-Programm, welches am Ende auf
verschiedenen AVR-Controllern laufen soll.

Am Anfang des Program's wird ja via $regfile der Controller
festgelegt, für den das Programm am Ende kompiliert werden soll.

Gibt es eine einfache Möglichkeit, ein Programm so zu schreiben,
dass -abhängig vom Inhalt von $regfile- Programmteile beim Kompilieren
ausgetauscht oder übersprungen werden?

Als Pseudocode stelle ich mir das in etwa so vor:

.
.
.
if $regfile = "atmega8.dat"
do
   Code spezifisch für ATMega8
else
   Code spezifisch für ATTiny85
endif
.
.
.

Dankeschön für eure Hilfe,
-AVRler

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Sieh Dir mal die Dokumentation von Bascom an. Da gibt es für die 
bedingte Compilierung die #if-Anweisung (mit Doppelkreuz), die 
Codeabschnitte nur bei Zutreffen von Bedingungen übersetzt.

https://avrhelp.mcselec.com/_if_else_endif.htm

Zwar kannst Du damit nicht auf den Namen des verwendeten "regfile" 
zugreifen, es gibt aber eine numerische Konstante, die die gleiche 
Funktion erfüllt:

> _CHIP is an integer that specifies the chip, in this case the 2313

von AVRler (Gast)


Lesenswert?

Genau danach hab ich gesucht! Dankeschön!

avrhelp.mcselec.com war für mich gestern aus irgend 'nem Grund den 
ganzen Tag lang nicht erreichbar. Keine Ahnung wer da auf der Leitung 
stand.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.