Go Down

Topic: "Trockentest" von Codeschnipseln (Read 1 time) previous topic - next topic

Schwarzfuss

Gibt es eigentlich eine Möglichkeit so ein paar Codezeilen
unter Umgehung des Arduino auf einer Konsole zu testen?

Mir geht es dabei hauptsächlich um Berechnungen
und verschiedene Deklarationen von Variablen,
mit anschl. Ausgabe auf stdout.

Versuche mit gcc und g++ verlaufen erfolgreich,
aber wie und womit wäre so ein Codeschnipsel '1 zu 1' auf den Arduino übertragbar?
Gruß Peter

Webmeister

Wieso wird nicht einfach ein günstiges Arduino-Board angeschlossen?
Schlussendlich soll der Code ja auch auf diesem betrieben werden.

Als Board kann auch eine Lösung auf Steckbrett oder eine Bare Bone Lösung verwendet werden. Günstige Lösungen gibt es viele.

Udo Klein

Hmm, so richtig ist mir auch nicht klar was Du willst. "stdout" geht ja auf dem Arduino nicht so recht. Wenn Du aber mit GCC gut zurecht kommst, dann willst Du vieleicht einfach nur Kommandozeilen Tools, d.h. make und Freunde, aka "CLI Arduino".

Ist zwar etwa nervig bis das klappt, aber der Aufwand lohnt sich meiner Meinung nach. Und in Ausbaustufe 2 kann man dann auch gleich den Bootloader durch einen ISP MKII ersetzen. Spart Speicher und man muß die Serielle Schnittstelle nicht dauernd freigeben. Schneller geht's dann kaum noch.
Check out my experiments http://blog.blinkenlight.net

Schwarzfuss

Gut, ein wenig deutlicher (irgendwo aufgeschnappt und umgeschrieben).
Die Ausgabe solcher und ähnlicher Codeschnipsel mal eben testen...,
aber eben in der Arduino-Umgebung, ohne Übertragung aufs Board.
Code: [Select]
//Version g++
// g++ -o hallowelt hallowelt.cpp; ./hallowelt
#include <stdio.h>
#include <cstdlib>

float a = 692;
float b = 697;
float c = 700;
float ta;
float tb;

int main()
{
ta = (a+b+c)/3;
tb = 3/(1/a+1/b+1/c);
printf("%f\n", ta);
printf("%f\n", tb);
printf("%f\n", 70*(ta-tb));
printf("%i\n", 70*(ta-tb));
printf("%i\n", abs(70*(ta-tb)));
}

Code: [Select]
// Version gcc
// gcc -o hello hello.c; ./hello
#include <stdio.h>
float a = 692;
float b = 697;
float c = 700;
float ta;
float tb;

void main()
{
ta = (a+b+c)/3;
tb = 3/(1/a+1/b+1/c);
printf("%f\n", ta);
printf("%f\n", tb);
printf("%f\n", 70*(ta-tb));
}

Gruß Peter

Nachtwind

Naja, wenns um reine berechnungsgeschichten geht kannst du doch einfachste C Programme schreiben und da mittels stdout 'nachsehen' ob die rechnungen mit simulierten werten funktionieren?
Believe me, Mike, I calculated the odds of this succeeding against the odds I was doing something incredibly stupid[ch8230] and I went ahead

Schwarzfuss

Die Dateiendung im sketchbook/.../applet/ -Ordner ist *.cpp,
dann wäre also g++ der compiler für solche externen Tests
und sollte mich dementsprechend mal mit C++ beschäftigen.

Das wird nicht '1 zu 1' auf den Arduino übertragbar sein,
für einfache Tests wirds aber reichen.
Gruß Peter

Udo Klein

Die Arduino IDE schiebt am Schluß ja auch alles durch einen C Compiler. Nur stdout gibt's halt nicht auf dem Arduino. Aber zum Probieren von so kleinen Schnipseln reicht der normale GCC kanz klar.

Gruß, Udo
Check out my experiments http://blog.blinkenlight.net

bohne

Solange Du nicht die Arduino Libraries verwendest kannst Du den ganz normalen gcc zum kompilieren Deiner cpp Dateien nehmen (nicht den avr-gcc).

Wenn Du allerdings die Libs und den Core vom Arduino nutzen möchtest (sagen wir mal Dinge wie DigitalWrite), dann wird es was aufwändiger und das kann ich gerade nicht aus dem Stehgreif konstruieren.

Es gibt ein Makefile für den Arduino (im hardware Ordner und dann im jeweiligen Core normalerweise), das Du benutzen kannst als Ausgangspunkt. Darin einfach den avr-gcc durch den normalen gcc für Deine Entwicklungsplattform austauschen... zumindest gilt das für 0014... ab 0017 kann ich dazu gerade nichts mehr sagen, da der buildvorgang sich komplett geändert hat.
http://www.dorkbot.de
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1236434254
http://www.luminet.cc

Schwarzfuss

Das Makefile übersteigt meine Fähigkeiten bei weitem :-[
Da belasse ichs doch lieber bei g++.
So ein bisschen Gewurschtel werd ich noch hinbekommen,
vielen Dank euch allen.
Gruß Peter

Go Up