Pages: [1]   Go Down
Author Topic: "Trockentest" von Codeschnipseln  (Read 1100 times)
0 Members and 1 Guest are viewing this topic.
MK (D)
Offline Offline
Full Member
***
Karma: 8
Posts: 170
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

Gruß Peter

CH
Offline Offline
God Member
*****
Karma: 19
Posts: 703
Book Writer "Arduino Praxiseinstieg"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

0
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3481
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Check out my experiments http://blog.blinkenlight.net

MK (D)
Offline Offline
Full Member
***
Karma: 8
Posts: 170
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
//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:
// 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));
}
Logged

Gruß Peter

Bonn, Germany
Offline Offline
God Member
*****
Karma: 2
Posts: 903
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

Believe me, Mike, I calculated the odds of this succeeding against the odds I was doing something incredibly stupid[ch8230] and I went ahead

MK (D)
Offline Offline
Full Member
***
Karma: 8
Posts: 170
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Gruß Peter

0
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3481
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Check out my experiments http://blog.blinkenlight.net

0
Offline Offline
God Member
*****
Karma: 1
Posts: 588
LumiNet rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged


MK (D)
Offline Offline
Full Member
***
Karma: 8
Posts: 170
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Gruß Peter

Pages: [1]   Go Up
Jump to: