C-Code übersetzen oder Script neu schreiben?

Hallo,

leider finde ich noch keinen richtigen Einstieg in das Thema und hoffe, ihr könnt mir etwas weiter helfen.

Ich habe den (nicht von mir geschrieben) C-Code (ca. 3000 Zeilen) eines Atmel Controllers, der über den COM-Port mit einem VBA Programm kommuniziert und ein relativ komplexes Gerät steuert.

Diese Steuerung soll nun auf einen Arduino Uno übertragen werden und ich sehe dort drei Wege-

  1. Ich lasse den Code wie er ist (bis auf ein paar Chip-spezifische Anpassungen) und "umgehe" die Arduino IDE komplett (ich hoffe das ist möglich).
  2. Ich passe den Code an die Struktur an die die Arduino IDE vorgibt- dies wäre doch recht aufwendig, da ich dann an dem fremden Code "herumbasteln" müsste
  3. Ich schreibe den gesamten Code neu und lerne eine Menge über Arduino :wink:

Die Parameterübergabe in VBA sollte möglichst bestehen bleiben, um dort keine neue Baustelle auf zu machen. Der Haken an der Sache ist, dass ich keine Erfahrung in C-Programmierung habe, allerdings in einigen verwandten Sprachen, so dass ich recht zuversichtlich bin, mich schnell einarbeiten zu können. Acuh beschäftige ich mich das erste Mal mit Microcontrolern :cold_sweat:

Wie wäre eure Empfehlung vorzugehen?

Vielen Dank für eure Hilfe,

viele Grüße,

Martin

  1. Ich lasse den Code wie er ist (bis auf ein paar Chip-spezifische Anpassungen) und "umgehe" die Arduino IDE komplett (ich hoffe das ist möglich).

Möglich, aber für den Anfänger sicher nicht zu empfehlen.

  1. Ich passe den Code an die Struktur an die die Arduino IDE vorgibt- dies wäre doch recht aufwendig, da ich dann an dem fremden Code "herumbasteln" müsste

Meist nicht wirklich schwierig. Normalerweise genügt es, wenn man den Inhalt den Namen der main()-Funktion in setup() umschreibt. Wenn Du dann noch ein (leeres) loop() einfügst, lassen sich die meisten Programme relativ gut kompilieren und machen auch das, was Du erwarten würdest. Klar kann es je nach Komplexität Probleme geben, aber auch die sind meist relativ einfach zu lösen.

  1. Ich schreibe den gesamten Code neu und lerne eine Menge über Arduino

Für Dich persönlich natürlich die wertvollste Option, aber das könnte vielleicht etwas länger dauern :).

Vielen Dank für die Antwort-

Dann werde ich mich einmal an dem Punkt 2 versuchen :wink:

Viele Grüße,

Martin

Nur so aus Neugier: warum soll das auf den Arduino? Atmel Boards gibt es doch (auch billig) wie Sand am Meer? Welche Vorteile soll das haben bestehenden Code auf den Arduino zu portieren?

Einfacher Grund- ich habe noch keine Erfahrung mit Mikrocontrollern und hoffe, so einen vernünftigen Einstieg zu finden. Zumindest muss ich mich so nicht mehr um den MC selbst kümmern.

Ist das nachvollziehbar?

Viele Grüße!

Für Anfänger ist der Arduino tatsächlich besser. Das ist ein guter Punkt.