=deutsch brauche hilfe für programm schreiben


tut mir erstens leid das dieses topic im englischen forum ist keine ahnung wie ich zum deutschen komme

alsoooo ich bin totaler anfänger, habe vor alles über arduino zu lernen da es mich sehr fazniniert!

aber als erstes projekt habe ich mir etwas kompliziertes zur aufgabe gemacht.
habe es von einer amerikanischen seite. und habe es 1:1 kopiert

 http://colligomentis.com/2012/05/16/hid-reader-arduino-rfid-card-catcher/

habe es von dieser seite und habe mir darauf diesen hid proxpro sogar 2 mal bestellt aus usa (musste 4 wochen darauf warten^^). habe auch alle arduino teile bestellt welche nötig sind.
habe im übrigen auch noch einen ganzen koffer voll mit arduino teile für meine weiter zukunft und eigene projekte ;)

habe alles 1:1 gleich zusammengebaut auch mit lcd bildschirm

nur haperts code... auf der seite hat der autor auch seinen code veröffentlich und ich spiele mit diesem seit tagen herum aber wie gesagt ich habe auch noch 0 ahnung vom programmieren. ich dachte ich kopiere alles 1:1 und es wird funbktionieren...
dem ist aber leider nicht so..

hier ist der code den ich habe und er zeigt mir immer ein problem an.. immer der gleichen zeile welche lautet:

"sdfat sd; // file system object sd card"   als problem steht :"  sdfat not name type"


schaut euch das projekt doch mal ich find es echt interressant aber für mein erstes projekt ist es natürlich etwas zu schwer das ist mir auch klar, darum brauche ich auch hilfe...

also mein code lautet
code: [select]
# include <softwareserial.h>
# include <sdfat.h>

// da das lcd nicht sendet daten zurück den arduino, sollten wir erst definieren die txpin
# define txpin 4 // weiß draht von serien-lcd-bildschirm
const int lcddelay = 10; // konservativ, 2 tatsächlich funktioniert

// sd-karte variables
const uint8_t chipselect = 10; // cs von sd bis 10 auf arduino pin
sdfat sd; // file system object sd card
sdfile file; // datei-objekt
char datafile [] = "cards.txt"; // datei zum karten-ids zu speichern

unsigned long bitholder1 = 0;
unsigned long bitholder2 = 0;
unsigned int bitcount = 0;
unsigned long cardchunk1 = 0;
unsigned long cardchunk2 = 0;
int parity = 0;
long previousmillis = 0; // wird letzte mal aktualisiert wurde lcd speichern
long intervall = 3000; // intervall für die anzeige zurückzusetzen (millisekunden)

// start-code für data0 und data1 interrupts, um die binären daten von der karte zu bekommen
// aus welchem ??grund, wenn der mikro data1 und data0 kabel müssen rückgängig gemacht werden
void data1(void) {
   bitcount + +;
   if(bitcount <23) {
     bitholder1 = bitholder1 << 1;
   }
   else {
     bitholder2 = bitholder2 << 1;
   }
}

void data0(void) {
  bitcount + +;
  if(bitcount <23) {
     bitholder1 = bitholder1 << 1;
     bitholder1 | = 1;
  }
  else {
    bitholder2 = bitholder2 << 1;
    bitholder2 | = 1;
  }
}

// end code data0 und data1

// beginn code lcd

softwareserial lcd(0, txpin);
/ /
void clearlcd(){
lcd.write(0xfe); // befehl flagge
lcd.write(0x01); // clear befehl.
delay(lcddelay);
}

// end-code für lcd

// start-code für sd-karte

void writesd() {
 
   // die datei öffnen. beachten sie, dass nur eine datei kann zu einer zeit offen,
   // müssen sie diese vor dem Öffnen einer anderen schließen.
   ofstream datei(datafile, ios :: out | ios :: app);
 
   // wenn die datei vorhanden ist, es zu schreiben:
   if (file) {
     file << bitcount;
     file << "bit card:";
     file << hex << cardchunk1;
     file << hex << cardchunk2;
     file << ", bin:";
     for (int = 19; i> = 0; -) {
       datei << bitread(cardchunk1, i);
     }
     for (int = 23; i> = 0; -) {
       file << bitread(cardchunk2, i);
     }
     file << endl;
     
     // print die serielle schnittstelle zu
      serial.println("schrieb daten auf sd-karte");
   }
else {
clearlcd();
lcd.print("error writing file");
}
}

// end-code für sd-karte

void setup() {
 
serial.begin(57600);
 
 clearinterrupts();
 
 attachinterrupt(0, data0, rising); // data0 (grün) auf hid leser, pin 2 auf arduino
 attachinterrupt(1, data1, rising); // data1 (weiß) auf hid leser, pin 3 auf arduino
 delay(10);
 // initialisieren lcd-bildschirm
/ / pinmode(txpin, output);
/ / lcd.begin(9600);
 
 // stellen sie sicher, dass die standard-chip-select-pin 10 eingestellt ist
 // ausgabe, auch wenn sie sie nicht benutzen:
 // setup ausgangs-pin auf sd-karte
 pinmode(10, output);
 pinmode(chipselect, output);
 
 // initialisierung sd-karte
 while(! sd.begin(chipselect, spi_half_speed)) {
   serial.println("no sd card!");
 }
 // auskommentiert ohne lcd
if (!sd.begin(chipselect, spi_half_speed)) {
clearlcd();
lcd.print("problem mit sd-karte");
 }
else {
clearlcd();
lcd.print("sd-karte initialisiert.");
 }

 // schalten sie onboard led betriebsbereitschaft anzuzeigen
 digitalwrite(17, low);
   
serial.println("reader_0001");
 
 // reset und machen sie sich bereit für eine karte
 bitcount = 0; bitholder1 = 0; bitholder2 = 0;
}


void loop() {
   if (millis() - previousmillis> intervall) {
     bitcount = 0; bitholder1 = 0; bitholder2 = 0; // falls etwas schief gelaufen ist, klar die puffer
     previousmillis = millis(); // erinnern, das letzte mal, dass wir blinzelte die led
clearlcd();
lcd.print ("present card or enter pin");
     
   }
   
   // prüfen, ob ein gültiger empfangenen bits länge eine karte sein, sind
   if(bitcount> = 26) {
       delay (100);
       
       // aufruf funktion für unsere beiden brocken karte werte zu erhalten
       getcardvalues();
       
       // debug zeug
serial.print("bithalter:");
serial.print(bitholder1, bin);
serial.print(",");
serial.println(bitholder2, bin);
serial.print("cardchunk1:");
serial.println(cardchunk1, bin);
serial.print("cardchunk2:");
serial.println(cardchunk2, bin);
serial.print("card value (bin):");
serial.print(cardchunk1, bin);
serial.println(cardchunk2, bin);
serial.print("card value (hex):");
serial.print(cardchunk1, hex);
serial.println(cardchunk2, hex);
       
       // drucken sie die karte werte auf den lcd-bildschirm
clearlcd();
lcd.print(bitcount);
lcd.print("bit-karte:");
lcd.print(cardchunk1, hex);
lcd.print(cardchunk2, hex);
       
       // schreibe die karte werte auf die sd-karte
       writesd();
       
       // flash-onboard-led, um anzuzeigen, karte lesen
       digitalwrite(17, high);
       delay (100);
       digitalwrite(17, low);
       
       // reset und machen sie sich bereit für eine andere karte
       bitcount = 0; bitholder1 = 0; bitholder2 = 0;
       previousmillis = millis();
       delay (100); // verlängern sie dies, wenn sie die karte wert auf dem lcd-bildschirm mehr sehen wollen
   }
}

// funktion, um interrupts zu löschen und bereiten sie für den einsatz
void clearinterrupts() {
 // die unterbrechung in den atmel prozessor vermasselt die ersten negativen impuls wie die eingänge sind bereits hoch,
 // das gibt einen impuls jedem leser eingabezeile, um die interrupts richtig funktioniert.
 // dann räumen die leser variablen.
 // die leser sind offener kollektor sitzen normalerweise in einer ein, ist dies ok
 for (int = 2; <4; + +) {
   pinmode (i, output);
   digitalwrite (i, high); // enable interner pull einen ein
   digitalwrite (i, low); // deaktivieren interner pull verursacht null und damit einen interrupt
   pinmode (i, input);
   digitalwrite (i, high); // enable interne pull-up
 }
 delay (10);
}




das die zweite hälfte vom code. und sry weil ich es 2 mal gepostet hatte  

code: [select]
// die datei öffnen. beachten sie, dass nur eine datei kann zu einer zeit offen,
   // müssen sie diese vor dem Öffnen einer anderen schließen.
   ofstream datei(datafile, ios :: out | ios :: app);
 
   // wenn die datei vorhanden ist, es zu schreiben:
   if (file) {
     file << bitcount;
     file << "bit card:";
     file << hex << cardchunk1;
     file << hex << cardchunk2;
     file << ", bin:";
     for (int = 19; i> = 0; -) {
       datei << bitread(cardchunk1, i);
     }
     for (int = 23; i> = 0; -) {
       file << bitread(cardchunk2, i);
     }
     file << endl;
     
     // print die serielle schnittstelle zu
      serial.println("schrieb daten auf sd-karte");
   }
else {
clearlcd();
lcd.print("error writing file");
}
}

// end-code für sd-karte

void setup() {
 
serial.begin(57600);
 
 clearinterrupts();
 
 attachinterrupt(0, data0, rising); // data0 (grün) auf hid leser, pin 2 auf arduino
 attachinterrupt(1, data1, rising); // data1 (weiß) auf hid leser, pin 3 auf arduino
 delay(10);
 // initialisieren lcd-bildschirm
/ / pinmode(txpin, output);
/ / lcd.begin(9600);
 
 // stellen sie sicher, dass die standard-chip-select-pin 10 eingestellt ist
 // ausgabe, auch wenn sie sie nicht benutzen:
 // setup ausgangs-pin auf sd-karte
 pinmode(10, output);
 pinmode(chipselect, output);
 
 // initialisierung sd-karte
 while(! sd.begin(chipselect, spi_half_speed)) {
   serial.println("no sd card!");
 }
 // auskommentiert ohne lcd
if (!sd.begin(chipselect, spi_half_speed)) {
clearlcd();
lcd.print("problem mit sd-karte");
 }
else {
clearlcd();
lcd.print("sd-karte initialisiert.");
 }

 // schalten sie onboard led betriebsbereitschaft anzuzeigen
 digitalwrite(17, low);
   
serial.println("reader_0001");
 
 // reset und machen sie sich bereit für eine karte
 bitcount = 0; bitholder1 = 0; bitholder2 = 0;
}


void loop() {
   if (millis() - previousmillis> intervall) {
     bitcount = 0; bitholder1 = 0; bitholder2 = 0; // falls etwas schief gelaufen ist, klar die puffer
     previousmillis = millis(); // erinnern, das letzte mal, dass wir blinzelte die led
clearlcd();
lcd.print ("present card or enter pin");
     
   }
   
   // prüfen, ob ein gültiger empfangenen bits länge eine karte sein, sind
   if(bitcount> = 26) {
       delay (100);
       
       // aufruf funktion für unsere beiden brocken karte werte zu erhalten
       getcardvalues();
       
       // debug zeug
serial.print("bithalter:");
serial.print(bitholder1, bin);
serial.print(",");
serial.println(bitholder2, bin);
serial.print("cardchunk1:");
serial.println(cardchunk1, bin);
serial.print("cardchunk2:");
serial.println(cardchunk2, bin);
serial.print("card value (bin):");
serial.print(cardchunk1, bin);
serial.println(cardchunk2, bin);
serial.print("card value (hex):");
serial.print(cardchunk1, hex);
serial.println(cardchunk2, hex);
       
       // drucken sie die karte werte auf den lcd-bildschirm
clearlcd();
lcd.print(bitcount);
lcd.print("bit-karte:");
lcd.print(cardchunk1, hex);
lcd.print(cardchunk2, hex);
       
       // schreibe die karte werte auf die sd-karte
       writesd();
       
       // flash-onboard-led, um anzuzeigen, karte lesen
       digitalwrite(17, high);
       delay (100);
       digitalwrite(17, low);
       
       // reset und machen sie sich bereit für eine andere karte
       bitcount = 0; bitholder1 = 0; bitholder2 = 0;
       previousmillis = millis();
       delay (100); // verlängern sie dies, wenn sie die karte wert auf dem lcd-bildschirm mehr sehen wollen
   }
}

// funktion, um interrupts zu löschen und bereiten sie für den einsatz
void clearinterrupts() {
 // die unterbrechung in den atmel prozessor vermasselt die ersten negativen impuls wie die eingänge sind bereits hoch,
 // das gibt einen impuls jedem leser eingabezeile, um die interrupts richtig funktioniert.
 // dann räumen die leser variablen.
 // die leser sind offener kollektor sitzen normalerweise in einer ein, ist dies ok
 for (int = 2; <4; + +) {
   pinmode (i, output);
   digitalwrite (i, high); // enable interner pull einen ein
   digitalwrite (i, low); // deaktivieren interner pull verursacht null und damit einen interrupt
   pinmode (i, input);
   digitalwrite (i, high); // enable interne pull-up
 }
 delay (10);
}

// funktion, um die karte wert (bitholder1 und bitholder2) auf die notwendige array angehängt werden dann tranlate dass zu
// die beiden stücke für die karte wert ausgegeben
void getcardvalues() {
 switch(bitcount) {




Arduino Forum > International > Deutsch (Moderator: uwefed) > =deutsch brauche hilfe für programm schreiben


arduino

Comments

Popular posts from this blog

Convierte tu Raspberry en un NAS. Firmware fvdw-sl 15.3 - Raspberry Pi Forums

Rasperry Wifi LAN Controller - Raspberry Pi Forums

Unlock car with bluetooth and car key