Forum: Mikrocontroller und Digitale Elektronik Asuro Problem AVR Studio 7


von Chris M. (chrisasuro)


Lesenswert?

Hallo zusammen,

ich würde gerne zum Spaß Mikrocontroller programmieren lernen und habe 
mir deshalb einen Asuro Robo besorgt.

Leider scheitere ich schon beim Build des Projektes (zumindest mit AVR 
Studio).

Ich nutze AVR Studio 7 und habe ein Projekt angelegt.

GCC Executable Project - Device Selection: ATmega8.

Wenn ich die Asuro lib herunterlade, ist in dem Zipfile ein MakeFile 
enthalten, die ich in den Projekt Eigenschaften bei Mike file Name 
angebe.

Ich habe ein einfaches Program zum Testen kopiert:

#include "asuro.h"

int main(void)
{
  unsigned char t1, t2;

  Init();
  SerWrite("\r\nTastsensor Test\r\n",19);
  while(1)
  {
    t1 = PollSwitch();
    t2 = PollSwitch();
    if(t1 && t2 && t1 == t2)
    {
      PrintInt(t1);
      SerWrite("\r\n", 2);
      Msleep(500);
    }
  }
}

Dann gehe in AVR Studio oben in der Symbolleiste auf Starten ohne 
Debugging und wähle Release aus.
Dann kommt folgende Ausgabe in der Console (ich weiß leider garnicht was 
ich damit anfangen soll):

Hiert ist wohl der Fehler:
g:\Program Files (x86)\Atmel\Studio\7.0\shellUtils\rm.exe: cannot lstat 
`*~': Invalid argument

Vielen Dank schon mal im Voraus!

Viele Grüße, Chris

------ Erstellen gestartet: Projekt: GccApplication2, Konfiguration: 
Release AVR ------
Der Buildvorgang wurde gestartet.
Projekt "GccApplication2.cproj" (Standardziele):
Erstellung mit der Toolsversion "14.0".
Das Ziel "PreBuildEvent" wurde übersprungen, da die Bedingung "false" 
war . ('$(PreBuildEvent)'!='') wurde als (''!='') ausgewertet.
Ziel "CoreBuild" in Datei "G:\Program Files 
(x86)\Atmel\Studio\7.0\Vs\Compiler.targets" aus Projekt 
"G:\dev\asuro\GccApplication2\GccApplication2\GccApplication2.cproj" 
(Ziel "Build" ist davon abhängig):
  Die RunCompilerTask-Aufgabe aus der G:\Program Files 
(x86)\Atmel\Studio\7.0\Extensions\Application\AvrGCC.dll-Assembly wird 
verwendet.
  RunCompilerTask-Aufgabe
    Aufgabenparameter:
    ContentList=
        asuro.h
                SubType=compile
        i2c.h
                SubType=compile
        lcd.h
                SubType=compile
        lcd_bpi216.h
                SubType=compile
        main.c
                SubType=compile
        myasuro.h
                SubType=compile
        rc5.h
                SubType=compile
        ultrasonic.h
                SubType=compile
    Aufgabenparameter:Directory=G:\dev\asuro\GccApplication2\GccApplication2
    Aufgabenparameter:ProjectFile=G:\dev\asuro\GccApplication2\GccApplicatio 
n2\GccApplication2.cproj
    Aufgabenparameter:Project=GccApplication2
    Aufgabenparameter:ToolchainSettings=<AvrGcc 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">;
  <avrgcc.common.Device>-mmcu=atmega8 -B 
"$(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega8"</avrgcc.common. 
Device>
  <avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
  <avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
  <avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
  <avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
  <avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfil 
es.usersignatures>
  <avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.comp 
iler.general.ChangeDefaultCharTypeUnsigned>
  <avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.comp 
iler.general.ChangeDefaultBitFieldUnsigned>
  <avrgcc.compiler.symbols.DefSymbols>
    <ListValues>
      <Value>NDEBUG</Value>
    </ListValues>
  </avrgcc.compiler.symbols.DefSymbols>
  <avrgcc.compiler.directories.IncludePaths>
    <ListValues>
      <Value>$(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include</Value>
    </ListValues>
  </avrgcc.compiler.directories.IncludePaths>
  <avrgcc.compiler.optimization.level>Optimize for size 
(-Os)</avrgcc.compiler.optimization.level>
  <avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler 
.optimization.PackStructureMembers>
  <avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.co 
mpiler.optimization.AllocateBytesNeededForEnum>
  <avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.All 
Warnings>
  <avrgcc.linker.libraries.Libraries>
    <ListValues>
      <Value>libm</Value>
    </ListValues>
  </avrgcc.linker.libraries.Libraries>
</AvrGcc>
    Aufgabenparameter:ToolchainName=com.Atmel.AVRGCC8.C
    Aufgabenparameter:AvrDevice=ATmega8
    Aufgabenparameter:Configuration=Release
    Aufgabenparameter:UsesExternalMakeFile=True
    Aufgabenparameter:ExternalMakeFilePath=G:\dev\lib\AsuroLib-v280rc2\Asuro 
Lib-v280rc2\lib\Makefile
    Aufgabenparameter:BuildTarget=all
    Aufgabenparameter:CleanTarget=clean
    Aufgabenparameter:OutputType=Executable
    Aufgabenparameter:OutputFileName=GccApplication2
    Aufgabenparameter:OutputFileExtension=.elf
    Aufgabenparameter:Language=C
    Aufgabenparameter:ToolchainFlavour=Native
    Shell Utils Path G:\Program Files (x86)\Atmel\Studio\7.0\shellUtils
    G:\Program Files (x86)\Atmel\Studio\7.0\shellUtils\make.exe -C 
"G:\dev\lib\AsuroLib-v280rc2\AsuroLib-v280rc2\lib" -f "Makefile" all
    make: Entering directory 
`G:/dev/lib/AsuroLib-v280rc2/AsuroLib-v280rc2/lib'
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
globals.o -MF dep/globals.o.d  -c  globals.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
adc.o -MF dep/adc.o.d  -c  adc.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
adc_low.o -MF dep/adc_low.o.d  -c  adc_low.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
encoder.o -MF dep/encoder.o.d  -c  encoder.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
encoder_low.o -MF dep/encoder_low.o.d  -c  encoder_low.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
i2c.o -MF dep/i2c.o.d  -c  i2c.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
lcd.o -MF dep/lcd.o.d  -c  lcd.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
lcd_bpi216.o -MF dep/lcd_bpi216.o.d  -c  lcd_bpi216.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
leds.o -MF dep/leds.o.d  -c  leds.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
motor.o -MF dep/motor.o.d  -c  motor.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
motor_low.o -MF dep/motor_low.o.d  -c  motor_low.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
my_motor_low.o -MF dep/my_motor_low.o.d  -c  my_motor_low.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
print.o -MF dep/print.o.d  -c  print.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
printf.o -MF dep/printf.o.d  -c  printf.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
rc5.o -MF dep/rc5.o.d  -c  rc5.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
sound.o -MF dep/sound.o.d  -c  sound.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
switches.o -MF dep/switches.o.d  -c  switches.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
time.o -MF dep/time.o.d  -c  time.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
uart.o -MF dep/uart.o.d  -c  uart.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
ultrasonic.o -MF dep/ultrasonic.o.d  -c  ultrasonic.c
    avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -Os -I./inc -MD -MP -MT 
version.o -MF dep/version.o.d  -c  version.c
    avr-ar cru libasuro.a globals.o adc.o adc_low.o encoder.o 
encoder_low.o i2c.o lcd.o lcd_bpi216.o leds.o motor.o motor_low.o 
my_motor_low.o print.o printf.o rc5.o sound.o switches.o time.o uart.o 
ultrasonic.o version.o
    rm -rf *.o *~
    g:\Program Files (x86)\Atmel\Studio\7.0\shellUtils\rm.exe: cannot 
lstat `*~': Invalid argument
    make: *** [all] Error 1
    make: Leaving directory 
`G:/dev/lib/AsuroLib-v280rc2/AsuroLib-v280rc2/lib'
  Die Ausführung der RunCompilerTask-Aufgabe ist abgeschlossen -- 
FEHLER.
Die Erstellung des Ziels "CoreBuild" im Projekt "GccApplication2.cproj" 
ist abgeschlossen -- FEHLER.
Die Erstellung des Projekts "GccApplication2.cproj" ist abgeschlossen -- 
FEHLER.

Fehler beim Buildvorgang.
========== Build: 0 erfolgreich oder aktuell, 1 fehlerhaft, 0 
übersprungen ==========

von Rainer V. (rudi994)


Lesenswert?

Chris M. schrieb:
> ...\shellUtils\rm.exe: cannot lstat `*~': Invalid argument

Soll wohl heissen, daß Funktion lstat() mit dem ungültigen Argument "*~" 
nicht ausgeführt werden kann. lstat() ermittelt Informationen (Datum und 
Zeit, Dateigröße, Dateiattribute u.a.) über eine Datei, deren Pfad\Name 
als Argument an lstat() übergeben wurde.

Ich habe keinen Asuro, habe aber interessehalber AsuroLib-v280rc2.zip 
heruntergeladen und dafür in AVR-Studio 4.19 ein GCC-Projekt eröffnet. 
Im Makefile habe ich erstmal nach der AsuroLib-Anleitung den vollen Pfad 
auf den Lib-Ordner eingefügt: LIBPATH = D:\AsuroLib-v280rc2\lib

Nun bin ich kein Makefile-Profi, habe nur soweit mögl. einiges probiert 
und im günstigsten Fall kommt nur noch der Fehler, daß die ELF-Datei 
nicht gefunden wird und daß diese im gleichen Ordner wie das Makefile 
vorliegen muß. Mal sehen, wie es weitergeht. LG

von Rainer B. (katastrophenheinz)


Lesenswert?

Für mich sieht das so aus, als ob deine shell den ausdruck *~ nicht 
auswerten kann.

Irgendwo im makefile wirst du die Zeile

     rm -rf *.o *~

finden. Lösch dort mal das *~, so dass nur

     rm -rf *.o

übrig bleibt. Sonst nichts verändern.

Das hilft dir erstmal über den abbruch von make hinweg, behebt aber 
nicht den eigentlichen Fehler.

von Rainer V. (rudi994)


Lesenswert?

Rainer B. schrieb:
> Lösch dort mal das *~

Besser nicht! :o

Bei mir läuft es jetzt. In AsuroLib\examples\FirstTry gibt es zum Üben 
die Datei test.c mit zugehörigem Makefile, das angeblich für viele 
Zwecke ausreicht. Ich habe im AVR-Studio ein Projekt "test" angelegt, 
dann test.c und Makefile dorthin kopiert und im Makefile des Projektes 
folg. Variablen gesetzt bzw. geändert, falls schon vorhanden:

Am Makefile-Anfang neu: PROJECT = test
Ein paar Zeilen tiefer: TARGET = test
Weiter unten: LIBPATH = D:/AsuroLib-v280rc2/lib  ##AsuroLib auf Lw D:

In Pfadangaben Schrägstriche (/) anstatt Rückstriche (\) verwenden!

Im AVR-Studio in Menu Project\Configuration Options und weiter unter 
"General" muß das Makefile als External Makefile angegeben werden und 
unter "Custom Options" noch die WinAVR-Pfade für avr-gcc und make, falls 
keine Atmel Toolchain verwendet wird:

C:\WinAVR-20100110\bin\avr-gcc.exe
C:\WinAVR-20100110\utils\bin\make.exe

Im Projekt in test.c habe ich o.g. Code des TE eingesetzt. Beim Rebuild 
kamen 2 Warnungen wg. Fehlern in function 'main': pointer targets in 
passing argument 1 of 'SerWrite' differ in signedness.

Zeiger in Arg.1 zeigt auf Wert mit unspezifischem Vorzeichen. Die 
Zeichen in "..." haben den Typ char, benötigt wird Typ unsigned char. 
Syntax von SerWrite siehe AsuroLib\lib\inc\asuro.h:
void SerWrite (unsigned char *data, unsigned char length);

Den Code des TE habe ich wie folgt geändert:
1
/* test.c */
2
3
//#define version2  //* Version-2 mit Stringfunktionen
4
#ifdef version2
5
    #include <string.h>
6
#endif
7
8
#include "asuro.h"
9
10
int main(void)
11
{
12
    unsigned char t1, t2;
13
 
14
    Init();
15
16
#ifdef version2
17
    char szData1[] = {"\r\nTastsensor Test\r\n"};
18
    char szData2[] = {"\r\n"};
19
    int iLength;
20
21
    iLength = strlen(szData1);
22
    SerWrite((unsigned char *) szData1, iLength);
23
#else
24
    SerWrite((unsigned char *) "\r\nTastsensor Test\r\n", 19);
25
    //SerWrite("\r\nTastsensor Test\r\n", 19);  //Warning!
26
#endif //version2
27
28
    while(1)
29
    {
30
        t1 = PollSwitch();
31
        t2 = PollSwitch();
32
        if (t1 && t2 && t1 == t2)
33
        {
34
            PrintInt(t1);
35
36
        #ifdef version2
37
            iLength = strlen(szData2);
38
            SerWrite((unsigned char *) szData2, iLength);
39
        #else
40
            SerWrite((unsigned char *) "\r\n", 2);
41
            //SerWrite("\r\n", 2);  //Warning!
42
        #endif //version2
43
44
            Msleep(500);
45
        }
46
    }
47
}

Das Makefile ist auch für andere, eigene Asuro-Projekte verwendbar. Man 
muß nur die Variablen PROJECT, TARGET und LIBPATH anpassen. LG

von Chris M. (chrisasuro)


Lesenswert?

Hallo,

vielen lieben Dank für die Antworten! Freut mich wirklich sehr, dass mir 
bei meinem Problem jemand hilft. Das ist mehr als ich erwartet habe. Ich 
dachte vielleicht findet sich hier jemand, der zufällig auch mit Asuro 
seine Erfahrungen gemacht hat.

Kannst du mir bitte noch einen Link zu der Asuro-Lib schicken, die du 
runtergeladen hast?

Bei dem Link bei dem ich bin, gibt es verschiedene Versionen und alle 
Makefiles unterscheiden sich...
LIBPATH z.b finde ich nirgends. In manchen heißt sie LIB oder TARGET. In 
machen sind die Linkts in Anführungsstrichen und in machen nicht. Sehr 
verwirrend.

Ich bin zuversichtlich, dass es bei mir auch bald funktionieren wird :)

Vielen Dank!

Gruß, Chris

von Rainer V. (rudi994)


Lesenswert?

Im Asuro-Wiki http://www.asurowiki.de/pmwiki/pub/html/main.html oben 
unter "Wichtige Links": aktuelle AsuroLib gibt es bei sourceforge.net

Auf sourceforge http://sourceforge.net/projects/asuro/ nicht auf das 
nächstbeste Download-Button (schon gar keine Werbeanzeigen) klicken, 
sondern "Browse all files" wählen, um alle Angebote zu sehen und auch, 
was andere Benutzer bevorzugen. Weiter geht es bei "AsuroLib", es kommt 
eine Liste diverser Versionen. Ich habe AsuroLib V2.8.0 gewählt.

Dann kommt eine Liste mit weiteren Unterversionen in Formaten *zip, 
*.exe, da habe ich AsuroLib-v280rc2.zip gewählt. Dann weiter, irgendwann 
kommt eine Anzeige wie "Download erfolgt in xxx Sekunden".

Chris M. schrieb:
> LIBPATH z.b finde ich nirgends. In manchen heißt sie LIB oder TARGET.
> In machen sind die Linkts in Anführungsstrichen und in machen nicht

Irgendwie falsch gesucht. LIBPATH, TARGET u.a. im Makefile sind keine 
Links, sondern Variablen, die zur weiteren Verarbeitung bestimmte Werte 
haben sollen. Am Besten erstmal die AsuroLib runterladen, auspacken und 
dann ein Übungsbeispiel wie "FirstTry" ausprobieren.

Das Makefile kann man im Studio öffnen, durchsuchen, ggf. anpassen und 
wieder speichern. Zum Compilieren nicht Build, sondern Rebuild wählen, 
damit alle Änderungen wirksam und im Projekt übernommen werden.

Weiterführendes zum AVR Makefile:
Beispiel, viele Einzelheiten: 
https://www.mikrocontroller.net/articles/Beispiel_Makefile
Tutorial/Exkurs: 
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Exkurs_Makefiles
Mfile: http://www.sax.de/~joerg/mfile/
Weiteres Beispiel: https://gist.github.com/entrity/5424505

Atmel Studio ab 6.x kenne ich nicht, evtl. wäre ein altes AVR-Studio 
(z.B. 4.19 Build 730) aus diversen Gründen hier besser geeignet.

> Bei dem Link bei dem ich bin, gibt es verschiedene Versionen und alle
> Makefiles unterscheiden sich...

Poste den Link doch hier (aber nichts von softonic oder dergl.!). LG

von chris_ (Gast)


Lesenswert?

Die Asuro Lib gibt es auch hier:
https://github.com/ChrisMicro/AsuroLib

Github hat manchmal den Vorteil, dass man die Dateien direkter anschauen 
kann.

von Rainer V. (rudi994)


Lesenswert?

chris_ schrieb:
> Vorteil, dass man die Dateien direkter anschauen kann.

Ja, evtl. kann man ReadMe und die Install-Anleitung durchlesen. Ist aber 
sonst für Neulinge verwirrend. Letztlich muß/sollte gerade der Anfänger 
nach Anleitung im Wiki vorgehen und das Original-Paket runterladen, 
sonst fehlt nachher irgendetwas und es gibt wieder unnötige Probleme.

von chris_ (Gast)


Lesenswert?

Hallo Chris M.
vielleicht wäre es für Dich interessant, einen Asuro Ersatzroboter zu 
bauen:

http://roboterclub-freiburg.de/projekte/freiBot/index.php

Die Bauteile kosten deutlich weniger als ein Asuro, der Arduino Nano hat 
32K Flash statt 8K Flash wie der Atemga8. Außerdem ist das Programmieren 
über das USB-Kabel sicherer als über die Infrarot Schnittstelle.

Teile der Asuro-Lib sind in die FreiBot-Beispiele mit eingebaut:
https://github.com/ChrisMicro/freiBot

von Chris M. (chrisasuro)


Lesenswert?

Hallo zusammen,

vielen Danke nochmal für die Bemühungen. Glaub man merkt ich bin noch 
blutiger Anfänger. Aber aller Anfang ist schwer.

>Weiterführendes zum ...

Danke Rainer V. für die Links und die auführlichen Erläuterungen! Für 
mich ist es schwer herzauszufinden, wo ich die für mich relevanten 
Informationen finden kann.

>http://sourceforge.net/projects/asuro/
Mit dem Link hat es jetzt funktioniert.
Dort ist auch die Variable LIBPATH und das Makefile sieht ganz anders 
aus. Den Link dazu weiß ich leider nicht mehr.

>LIBPATH, TARGET u.a. im Makefile sind keine Links, sondern Variablen

Sorry ich meinte nicht Links sonders Pfade :)
In manchen Makefiles sind die Pfade in Anführungsstrichen. Aber ich 
glaube das liegt eher daran, dass die Pfade Leerzeichen enthalten.

>Atmel Studio ab 6.x kenne ich nicht, evtl. wäre ein altes AVR-Studio
>(z.B. 4.19 Build 730) aus diversen Gründen hier besser geeignet.

Ich verwende jetzt die Version 4.19.

>Die Bauteile kosten deutlich weniger als ein Asuro, der Arduino Nano hat
>32K Flash statt 8K Flash wie der Atemga8.

Vielen Dank für den Hinweis. Ich habe den Asuro von jemand, der daran 
verzweifelte, geschenkt bekommen.
Ich muss sagen ich finde ihn aber sehr teuer dafür, dass ich die Räder 
schon des Öfteren wieder mit Kleber befestigen musste, weil die Achsen 
sehr provisorisch an der Leiterplatte gelötet werden müssen.

>Außerdem ist das Programmieren
>über das USB-Kabel sicherer als über die Infrarot Schnittstelle.

Inwiefern ist USB hier sicherer? Ich denke für meine Zwecke spielt 
Sicherheit erstmal keine Rolle :)

Aber der Arduino Nano könnte vielleicht ja mein zweites Projekt werden.

Vielen Dank nochmal! Jetzt kanns los gehen :)

Viele Grüße
Chris

: Bearbeitet durch User
von Rainer V. (rudi994)


Lesenswert?

Chris M. schrieb:
> In manchen Makefiles sind die Pfade in Anführungsstrichen. Aber ich
> glaube das liegt eher daran, dass die Pfade Leerzeichen enthalten.

Korrekt! Hatte ich weiter oben vergessen, zu erwähnen.

> ich finde ihn aber sehr teuer dafür, dass ich die Räder
> schon des Öfteren wieder mit Kleber befestigen musste

Deswegen habe ich vom Asuro und ähnlichem schnell Abstand genommen.
Ich hatte mich mal für Robotik interessiert und habe lange Listen mit
Artikeln und Preisen von Bausätzen und Einzelteilen notiert. Letztlich
sind alle diese Sachen recht teuer, aber laut Benutzerbeiträgen im Web
funktioniert trotzdem so einiges nicht zufriedenstellend. Da ist es
vor der Kaufentscheidung ratsam, sich bestens zu informieren.

> Jetzt kanns los gehen

Noch viel Spaß und Erfolg - LG

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.