Skocz do zawartości

Błąd kompilacji Arduino Uno (exit status 1)


Janu12345

Pomocna odpowiedź

Witam jeśli ktoś by mógł to sprawdzić to byłbym bardzo wdzięczny. Mianowicie w kodzie jest chyba wszystko poprawnie ale gdy próbuje wgrać pokazuje błąd kompilacji jaka jest tego wada ?? 

// RFID/NFC Scanner
// (C)2018 Pawel A. Hernik
// YouTube video: https://youtu.be/RnljdPqzepk
/*
CONNECTIONS
-----------
SSD1306 OLED:
SDA -> A4
SCL -> A5

RC522 RFID module:
SDA  -> D10 (SS)
SCK  -> D13
MOSI -> D11
MISO -> D12
IRQ  -> NC
GND  -> GND
RST  -> D9
3V3  -> 3V3 (5V seems to work fine, too)

RC522 library:
https://github.com/mdxs/MFRC522
*/


#include <OLEDSoftI2C_SSD1306.h>
//#include <OLEDSoftI2C_SH1106.h>
// define USEHW in above header for hw I2C version

OLEDSoftI2C_SSD1306 oled(0x3c);
//OLEDSoftI2C_SH1106 oled(0x3c);

#if USEHW==1
#include <Wire.h>
#endif

#include "small5x7bold_font.h"
#include "term7x14_font.h"
//#include "fonts_all.h"

#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN         9
#define SS_PIN          10

MFRC522 mfrc522(SS_PIN, RST_PIN);

char *getPICCname(MFRC522::PICC_Type piccType)
{
  switch (piccType) {
    case MFRC522::PICC_TYPE_ISO_14443_4: return "ISO/IEC 14443-4";
    case MFRC522::PICC_TYPE_ISO_18092:   return "ISO/IEC 18092 (NFC)";
    case MFRC522::PICC_TYPE_MIFARE_MINI: return "MIFARE Mini";
    case MFRC522::PICC_TYPE_MIFARE_1K:   return "MIFARE 1KB";
    case MFRC522::PICC_TYPE_MIFARE_4K:   return "MIFARE 4KB";
    case MFRC522::PICC_TYPE_MIFARE_UL:   return "MIFARE Ultralight";
    case MFRC522::PICC_TYPE_MIFARE_PLUS: return "MIFARE Plus";
    case MFRC522::PICC_TYPE_TNP3XXX:     return "MIFARE TNP3XXX";
    case MFRC522::PICC_TYPE_NOT_COMPLETE: return "not complete";
    case MFRC522::PICC_TYPE_UNKNOWN:
    default:  return "Unknown";
  }
}

char buf[30];

void RFID_PrintInfo( MFRC522::Uid *uid ) 
{
  snprintf(buf,30,"UID: %d bytes",uid->size);
  oled.setFont(Small5x7PLBold);
  oled.printStr(ALIGN_CENTER, 3, buf);
  oled.setFont(uid->size>7 ?  Small5x7PLBold : Term7x14PL);
  oled.setCR(1);
  Serial.print(F("Card UID:"));
  int wd = 18; // for size=7
  if(uid->size>7) wd=15;
  if(uid->size<7) wd=19;
  int xs = (SCR_WD-uid->size*wd)/2;
  for(byte i = 0; i < uid->size; i++) {
    snprintf(buf,30,"%02X ",uid->uidByte[i]);
    oled.printStr(xs+i*wd, 0, buf);
    if(uid->uidByte[i] < 0x10)  Serial.print(F(" 0"));  else Serial.print(F(" "));
    Serial.print(uid->uidByte[i], HEX);
  } 
  Serial.println();
  
  oled.setCR(0);
  oled.setFont(Small5x7PLBold);
  Serial.print(F("Card SAK: "));
  if(uid->sak < 0x10) Serial.print(F("0"));
  Serial.println(uid->sak, HEX);
  snprintf(buf,30,"Card SAK: 0x%02X",uid->sak);
  oled.printStr(ALIGN_CENTER, 4, buf);

  MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(uid->sak);
  Serial.print(F("PICC type: "));
  Serial.println(getPICCname(piccType));
  oled.setFont(Small5x7PLBold);
  oled.printStr(ALIGN_CENTER, 2, getPICCname(piccType));

  char *txt="";
  switch (piccType) {
    case MFRC522::PICC_TYPE_MIFARE_MINI:
      txt="5 sectors = 320 bytes"; break;
    case MFRC522::PICC_TYPE_MIFARE_1K:
      txt="16 sectors = 1024 bytes"; break;
    case MFRC522::PICC_TYPE_MIFARE_4K:
      txt="40 sectors = 4096 bytes"; break;
    case MFRC522::PICC_TYPE_MIFARE_UL:
      txt="16 pages = 64 bytes"; break;
  }
  oled.printStr(ALIGN_CENTER, 5, txt);
  Serial.println(txt);
  Serial.println();
  mfrc522.PICC_HaltA();
}

void RFID_FirmwareVersion() 
{
  byte v = mfrc522.PCD_ReadRegister(MFRC522::VersionReg);
  Serial.print(F("Firmware Version: 0x")); Serial.print(v, HEX); Serial.print(F(" "));
  char *ver;
  switch(v) {
    case 0x88: ver="clone?";  break;
    case 0x90: ver="v0.0";  break;
    case 0x91: ver="v1.0";  break;
    case 0x92: ver="v2.0";  break;
    default:   ver="v???";
  }
  Serial.println(ver); Serial.println(); 
  oled.printStr(ALIGN_CENTER, 0, "MRC522 Firmware Version");
  snprintf(buf,30,"%s (0x%02x)",ver,v);
  oled.printStr(ALIGN_CENTER, 2, buf);
  if((v == 0x00) || (v == 0xFF)) {
    oled.printStr(ALIGN_CENTER, 4, "Communication failure!");
    Serial.println(F("WARNING: Communication failure, is the MFRC522 properly connected?"));
  }
}

void setup() 
{
  Serial.begin(9600);
  oled.init(0);  // 0-128x64, 1-128x32
  oled.clrScr();
  oled.setFont(Small5x7PLBold);
  SPI.begin();
  mfrc522.PCD_Init();
  //mfrc522.PCD_SetAntennaGain(mfrc522.RxGain_max);
  RFID_FirmwareVersion();
}

int cardNo = 1;
unsigned long t = 0;

void loop() 
{
  if( mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial() ) {
    oled.clrScr();
    RFID_PrintInfo(&(mfrc522.uid));
    cardNo++;
  } else {
    if(millis()-t<400) {
      snprintf(buf,30,"Scan card #%d",cardNo);
      oled.printStr(ALIGN_CENTER, 7, buf);
    } else {
      oled.fillWin(0,7,SCR_WD,1,0);
    }
    if(millis()-t>800) t = millis();
  }
}

 

Przechwytywanie.PNG

Link do komentarza
Share on other sites

@Janu12345 witam na forum!

Sprawdź czy kompilator na pewno nie pokazuje nic więcej ponad tym wycinkiem, który tutaj wstawiłeś 😉 To pole z błędami można przewijać i prawdopodobnie znajdziesz tam więcej informacji na temat Twojego błędu.

Link do komentarza
Share on other sites

3 minuty temu, Treker napisał:

Sprawdź czy kompilator na pewno nie pokazuje nic więcej ponad tym wycinkiem

Najlepiej jak w ustawieniach IDE PLIK-PREFERENCJE zaznaczysz by były pokazywane szczegółowe informacje podczas kompilowania i wgrywania programu, a także wszystkie ostrzeżenia kompilatora.

 

6 minut temu, Treker napisał:

To pole z błędami można przewijać

Nie tylko - można także rozciągnąć je do większego rozmiaru. Po zaznaczeniu tych opcji poszukaj konkretnego błędu.

Link do komentarza
Share on other sites

A najlepiej kliknąć w przycisk "skopiuj opis błędów" (pokaże się nad polem błędów w przypadku ich wystąpienia) i wkleić do posta w polu "wstaw kod programu", najlepiej zaznaczając "brak podświetlenia składni".

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Witam nie będe otwierał nowego tematu ale mam podobny problem z tą biblioteką może coś zaradzicie na ten problemik 

Wyskakuje mi błąd w kompilacji Arduino Uno 

 

C:\Users\darex120\AppData\Local\Temp\ccQQhaSd.ltrans0.ltrans.o: In function `i2c_write':
C:\Users\darex120\Documents\Arduino\libraries\OLEDSoftI2C_SSD1306-master/SoftI2C.cpp:310: undefined reference to `ass_i2c_wait_scl_high'
C:\Users\darex120\Documents\Arduino\libraries\OLEDSoftI2C_SSD1306-master/SoftI2C.cpp:310: undefined reference to `ass_i2c_wait_scl_high'
C:\Users\darex120\AppData\Local\Temp\ccQQhaSd.ltrans0.ltrans.o: In function `i2c_start(unsigned char) [clone .constprop.29]':
C:\Users\darex120\Documents\Arduino\libraries\OLEDSoftI2C_SSD1306-master/SoftI2C.cpp:161: undefined reference to `ass_i2c_wait_scl_high'
C:\Users\darex120\Documents\Arduino\libraries\OLEDSoftI2C_SSD1306-master/SoftI2C.cpp:161: undefined reference to `ass_i2c_delay_half'
C:\Users\darex120\Documents\Arduino\libraries\OLEDSoftI2C_SSD1306-master/SoftI2C.cpp:161: undefined reference to `ass_i2c_write'
C:\Users\darex120\AppData\Local\Temp\ccQQhaSd.ltrans0.ltrans.o: In function `ass_i2c_stop':
C:\Users\darex120\Documents\Arduino\libraries\OLEDSoftI2C_SSD1306-master/SoftI2C.cpp:234: undefined reference to `ass_i2c_delay_half'
C:\Users\darex120\Documents\Arduino\libraries\OLEDSoftI2C_SSD1306-master/SoftI2C.cpp:234:(.text+0xf66): relocation truncated to fit: R_AVR_13_PCREL against undefined symbol `ass_i2c_delay_half'
C:\Users\darex120\Documents\Arduino\libraries\OLEDSoftI2C_SSD1306-master/SoftI2C.cpp:234: undefined reference to `ass_i2c_delay_half'
C:\Users\darex120\Documents\Arduino\libraries\OLEDSoftI2C_SSD1306-master/SoftI2C.cpp:234:(.text+0xf6a): relocation truncated to fit: R_AVR_13_PCREL against undefined symbol `ass_i2c_delay_half'
C:\Users\darex120\Documents\Arduino\libraries\OLEDSoftI2C_SSD1306-master/SoftI2C.cpp:234: undefined reference to `ass_i2c_wait_scl_high'
C:\Users\darex120\Documents\Arduino\libraries\OLEDSoftI2C_SSD1306-master/SoftI2C.cpp:234:(.text+0xf6e): relocation truncated to fit: R_AVR_13_PCREL against undefined symbol `ass_i2c_wait_scl_high'
C:\Users\darex120\Documents\Arduino\libraries\OLEDSoftI2C_SSD1306-master/SoftI2C.cpp:234: undefined reference to `ass_i2c_delay_half'
C:\Users\darex120\Documents\Arduino\libraries\OLEDSoftI2C_SSD1306-master/SoftI2C.cpp:234:(.text+0xf72): relocation truncated to fit: R_AVR_13_PCREL against undefined symbol `ass_i2c_delay_half'
  
collect2.exe: error: ld returned 1 exit status
exit status 1
Błąd kompilacji dla płytki Arduino Uno.

 

  • Lubię! 1
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.