Forum: Mikrocontroller und Digitale Elektronik CSV mit Keil


von Roland R. (r1810)


Lesenswert?

Hallo,

was muss ich machen damit ich mit Keil als Compiler einen Ordner auf 
einem USB Stick anlegen kann, eine CSV-Datei erstellen und dort 
reinschreiben kann?
Wäre sehr dankbar für einen Tipp.

von StinkyWinky (Gast)


Lesenswert?

Du schreibst ein Programm/Script, welches die gewünschten Operationen 
durchführt und hängst es als User Programm entweder vor oder nach dem 
Build ein.

von Roland R. (r1810)


Lesenswert?

Aber wie muss das Programm aussehen und welche Headers muss ich includen 
da mit Keil das auch frisst?

von Random .. (thorstendb) Benutzerseite


Lesenswert?

Was hast du konkret vor? Soll das µC Target Programm etwas auf einen USB 
Stick schreiben?

von Roland R. (r1810)


Lesenswert?

Ja so in der Richtung. Ich will mit Keil das Programm schreiben, damit 
den Controller EasyKit XC167 CI flashen und der Controller soll mir dann 
etwas auf den USB schreiben

von holger (Gast)


Lesenswert?

>EasyKit XC167 CI flashen und der Controller soll mir dann
>etwas auf den USB schreiben

Dann besorg dir mal einen Vinculum von FTDI. Ohne den schreibt
dein XC167 gar nichts auf einen USB Stick.

von Random .. (thorstendb) Benutzerseite


Lesenswert?

UART nutzen, und das auf den PC schieben?

von Roland R. (r1810)


Lesenswert?

Geht nicht da ich Vorort keinen PC habe.
Holger kannst du mir bitte etwas weiter helfen?

von Roland R. (r1810)


Lesenswert?

Hab gerade nachgesehen ich brauch doch den Vinculum von FTDI gar nicht. 
Der FTDI2232d ist doch schon auf dem Board montiert

von Roland R. (r1810)


Lesenswert?

Jetzt ist noch ein Problem aufgetaucht. Warum bringt mir der Keil 
folgenden Fehler "undefined identifier" bei Eingabe von "FILE * file" 
obwohl ich stdio.h und stdlib.h include?

von Random .. (thorstendb) Benutzerseite


Lesenswert?

gerade mal getestet:
1
#include <stdio.h>
2
3
FILE *fp=0;
4
5
int main()
6
{
7
  fp = fopen("foo", "r");
8
  
9
  while(1);
10
}
keine Probleme. Poste mal den Code...

von Roland R. (r1810)


Lesenswert?

Also bei mir bringt er Fehler:
error C142: illegal initialization
 error C42: 'main': not in formal parameter list

kannst du mir bitte sagen wie du vorgegangen bist?

von Roland R. (r1810)


Lesenswert?

Du hast ja auch den Keil µVision3?

von Random .. (thorstendb) Benutzerseite


Lesenswert?

Ich habe jede µVision :-)

Poste bitte mal den Codeschnippsel, mit dem du es reproduzieren kannst.

Ich habe einfach nur ein neues Projekt erstellt auf Basis irgendeines 
CM3, und dann diesen Codeschnippsel getestet...

Ahso, MDK 4.22.1.0

von Roland R. (r1810)


Lesenswert?

Ja ich glaub da liegt mein Problem, ich hab den Codeschnippsel von dir 
in ein
bestehendes Projekt eingefügt und den Rest auskommentiert.
Kannst du mir bitte genau sagen wie du das Project erstellt hast, ich 
bin da
nicht alzu Fit drin.
Vielen Dank schon mal im Voraus

von Random .. (thorstendb) Benutzerseite


Lesenswert?

?
Schau dir am besten eins der Beispielprojekte an, oder sag mir, welche 
MCU du verwendest.

Die Cortex-M3 basierten MCUs verwenden mittlerweile weitestgehend CMSIS, 
was einem die Grundconfig abnimmt (der Chip läuft bis main() ).
Diese files liegen im c:\keil\ARM\startup\<vendor>\ und werden im 
Projekt benötigt.

MCUs, die kein CMSIS verwenden, brauchen diese files nicht, und das 
Projekt ist sofort nach Erstellung und einer main() compilierbar.

von Roland R. (r1810)


Lesenswert?

Ich arbeite mit dem EasyKit XC167 CI wenn dir das weiter hilft

von Matthias (Gast)


Lesenswert?

Hallo Roland,
den Typ FILE gibt es bei deinem C166 Compiler nicht. Dieser Typ ist 
normalerweise nur in Compilern zu finden die fuer Hosted Environments 
compilieren. Ein Microcontroller hat aber eher selten ein richtiges 
Betriebssystem.
Die einzige Moeglichkeit eine File API fuer den C166 zu bekommen ist 
entsprechende Middleware mit in die Applikation zu integrieren. Keil 
ARTX166 ist ein entsprechendes Produkt.

Gruss,
Matthias

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.