matpi / EmbeddedSystemsUTU

This repository concerns the course KSA4 Embedded Systems (craft, design and technology education) in the University of Turku, Department of Teacher Education, Rauma Unit in the academic year 2014
4 stars 5 forks source link

Virheilmoitus RFID koodia syötettäessä #28

Open Jutossi opened 9 years ago

Jutossi commented 9 years ago

Tämä koodi

/**

RFID rfid(SS_PIN, RST_PIN);

int buzzPin = 3;

// Setup variables: int serNum0; int serNum1; int serNum2; int serNum3; int serNum4;

void setup() { Serial.begin(9600); SPI.begin(); rfid.init(); }

void loop() {

if (rfid.isCard()) {
    if (rfid.readCardSerial()) {
        if (rfid.serNum[0] != serNum0
            && rfid.serNum[1] != serNum1
            && rfid.serNum[2] != serNum2
            && rfid.serNum[3] != serNum3
            && rfid.serNum[4] != serNum4
        ) {
            /* With a new cardnumber, show it. */
            Serial.println(" ");
            Serial.println("Card found");
            serNum0 = rfid.serNum[0];
            serNum1 = rfid.serNum[1];
            serNum2 = rfid.serNum[2];
            serNum3 = rfid.serNum[3];
            serNum4 = rfid.serNum[4];

            //Serial.println(" ");
            Serial.println("Cardnumber:");
            Serial.print("Dec: ");
    Serial.print(rfid.serNum[0],DEC);
            Serial.print(", ");
    Serial.print(rfid.serNum[1],DEC);
            Serial.print(", ");
    Serial.print(rfid.serNum[2],DEC);
            Serial.print(", ");
    Serial.print(rfid.serNum[3],DEC);
            Serial.print(", ");
    Serial.print(rfid.serNum[4],DEC);
            Serial.println(" ");

            Serial.print("Hex: ");
    Serial.print(rfid.serNum[0],HEX);
            Serial.print(", ");
    Serial.print(rfid.serNum[1],HEX);
            Serial.print(", ");
    Serial.print(rfid.serNum[2],HEX);
            Serial.print(", ");
    Serial.print(rfid.serNum[3],HEX);
            Serial.print(", ");
    Serial.print(rfid.serNum[4],HEX);
            Serial.println(" ");
            //buzzer
            analogWrite(3,20);
            delay(500);
            analogWrite(3,0);
         } else {
           /* If we have the same ID, just write a dot. */
           Serial.print(".");
         }
      }
}

rfid.halt();

}

ANTAA TÄLLAISIA VIRHEILMOITUKSIA... Miss' vika_

RFID\SPI.cpp.o: In function SPIClass::end()': C:\Program Files (x86)\Arduino\libraries\RFID/SPI.cpp:40: multiple definition ofSPIClass::end()' SPI\SPI.cpp.o:C:\Program Files (x86)\Arduino\libraries\SPI/SPI.cpp:44: first defined here RFID\SPI.cpp.o: In function SPIClass::setBitOrder(unsigned char)': C:\Program Files (x86)\Arduino\libraries\RFID/SPI.cpp:45: multiple definition ofSPIClass::setBitOrder(unsigned char)' SPI\SPI.cpp.o:C:\Program Files (x86)\Arduino\libraries\SPI/SPI.cpp:49: first defined here RFID\SPI.cpp.o: In function SPIClass::setDataMode(unsigned char)': C:\Program Files (x86)\Arduino\libraries\RFID/SPI.cpp:54: multiple definition ofSPIClass::setDataMode(unsigned char)' SPI\SPI.cpp.o:C:\Program Files (x86)\Arduino\libraries\SPI/SPI.cpp:58: first defined here RFID\SPI.cpp.o: In function SPIClass::setClockDivider(unsigned char)': C:\Program Files (x86)\Arduino\libraries\RFID/SPI.cpp:59: multiple definition ofSPIClass::setClockDivider(unsigned char)' SPI\SPI.cpp.o:C:\Program Files (x86)\Arduino\libraries\SPI/SPI.cpp:63: first defined here RFID\SPI.cpp.o: In function SPIClass::begin()': C:\Program Files (x86)\Arduino\libraries\RFID/SPI.cpp:24: multiple definition ofSPIClass::begin()' SPI\SPI.cpp.o:C:\Program Files (x86)\Arduino\libraries\SPI/SPI.cpp:19: first defined here RFID\SPI.cpp.o:C:\Program Files (x86)\Arduino\libraries\RFID/SPI.cpp:40: multiple definition of `SPI' SPI\SPI.cpp.o:C:\Program Files (x86)\Arduino\libraries\SPI/SPI.cpp:44: first defined here

Robojuchen commented 9 years ago

tarkastakaa onko arduinon libraries kansiossa RFID-kirjaston kansiossa tiedostot SPI.h ja SPI.cpp ja poistakaa ne jos on

Robojuchen commented 9 years ago

eli programfiles tms. -> arduino-> libraries -> RFID. sieltä ylimääräiset pois.

matpi commented 9 years ago

Juu... tuo auttoi. Toinenkaan koodi ei toiminut, ja sieltä löytyi onneksi virheet. Wikin koodihan oli seuraava:

                #include <SPI.h>
                #include <RFID.h>
                #include <LiquidCrystal.h>

                #define SS_PIN 10
                #define RST_PIN 9

                RFID rfid(SS_PIN, RST_PIN); 

                void setup()
                { 
                Serial.begin(9600);
                SPI.begin(); 
                rfid.init();
                }

                void loop()

                {
                if (rfid.isCard()) //onko korttia luettavissa
                { 
                if (rfid.readCardSerial()) 
                {
                /* Jos kortin lukeminen onnistuu, luvut on tallenettu
                lukusarjaan josta ne voidaan lukea muuttujiin*/
                Serial.println(" ");
                Serial.println("Card found");
                serNum0 = rfid.serNum[0];
                serNum1 = rfid.serNum[1];
                serNum2 = rfid.serNum[2];
                serNum3 = rfid.serNum[3];
                serNum4 = rfid.serNum[4];

                //Serial.println(" ");
                Serial.println("Cardnumber:");
                Serial.print("Dec: ");
                Serial.print(rfid.serNum[0],DEC);
                Serial.print(", ");
                Serial.print(rfid.serNum[1],DEC);
                Serial.print(", ");
                Serial.print(rfid.serNum[2],DEC);
                Serial.print(", ");
                Serial.print(rfid.serNum[3],DEC);
                Serial.print(", ");
                Serial.print(rfid.serNum[4],DEC);
                Serial.println(" ");
                // tulostetaan sama heksalukuina 
                Serial.print("Hex: ");
                Serial.print(rfid.serNum[0],HEX);
                Serial.print(", ");
                Serial.print(rfid.serNum[1],HEX);
                Serial.print(", ");
                Serial.print(rfid.serNum[2],HEX);
                Serial.print(", ");
                Serial.print(rfid.serNum[3],HEX);
                Serial.print(", ");
                Serial.print(rfid.serNum[4],HEX);
                Serial.println(" ");

                Serial.print(LUETTU!);
                Serial.println(" ");  
                delay(1000);
                }  
                }

                rfid.halt();
                }

Huomasin, että alustuksesta puuttui seuraava pätkä: int serNum0; int serNum1; int serNum2; int serNum3; int serNum4;

Lisäksi koodiin: Serial.print(LUETTU!); piti lisätä hipsut eli näin: Serial.print("LUETTU!");

Nyt Toimii!

Robojuchen commented 9 years ago

Joo tuli vähän kiireellä tehtyä. Nuo kirjastot pitäisi tarkistaa. Sitä nunchuk kirjastoa ei vissiin ollutkaan muissa kuin siinä yhdessä koneessa jolla kokeiltiin?

matpi commented 9 years ago

No minulle tämä teki vain hyvää, kun täytyi miettiä mistä kiikastaa :) Mikä sen Nunchuk kirjaston nimi olikaan?

Robojuchen commented 9 years ago

Se löytyy siltä koneelta millä testailtiin silloin, en muista minkä niminen se on. Hyvin hokasit kyllä nuo lapsukset tuossa koodissa :)