Skocz do zawartości

Jak odczytywać linie tekstu z karty SD


dlotko2000

Pomocna odpowiedź

Dzień Dobry,

Jako iż aktualnie mam troszkę wolnego czasu związku z epidemią wirusa u nas w kraju postanowiłem zacząć budować odp podstaw samemu małe CNC. Jestem aktualnie na etapie tworzenia kodu ( chcę samodzielnie oprócz budowy stelaż stworzyć oprogramowanie do tego cnc ). W tym cnc chciałbym odtwarzać "GCODE" z karty SD. Moim problemem jest to że nie wiem w jaki sposób miałbym odczytywać dane linijki pliku tekstowego.  Na samym początku próbowałem przypisywać do tablicy zmiennych całą ilość kodu, tylko że doszedłem do wniosku że jest to troche bez sensowne rozwiązanie ponieważ marnuje zasoby pamięci dynamicznej atmegi oraz jest szansa że "GCODE" może zawierać więcej znaków niż ilość pamięci którą przypisałem do tej danej tablicy zmiennej. Doszedłem do wniosku że dobrym rozwiązaniem było by odczytywanie danej linijki tekstu (np linia pierwsza, linia druga [...] linia czterdziesta itp) tylko po przeszukaniu GOOGLE nie umiem nic sensownego znaleźć lub jeżeli coś znalazłem nie umiałem tego zrozumieć.  Po niżej załączam fragment kodu który przypisuje mi dane z tej karty do zmiennej.

 

  

if (dataFile) 
{
  while (dataFile.available()) 
  {
	char RAM_GCODE[500];
    RAM_GCODE[i]=dataFile.read();
    i++;
  }
  dataFile.close();
  }

Myślę że na tym forum znajdzie się jakaś osoba która mogła by mi przy tym pomóc :).

Link do komentarza
Share on other sites

(edytowany)

Nie wiem czy dobrze rozumiem ale  co zrozumiałem to readBytesUntil(Znak czytany, tablica do której wpisujemy dane, ilość danych). Dobrze myślę?

Napisałem taką zmienną aby "pobawić" się tą metodą

char buffer[20];
  for (int i = 0 ; i < 20 ; i++) 
  {
    buffer[i] = 0;
  }
  while(!dataFile.available());
  int zmienna = 0;
  zmienna = dataFile.readBytesUntil('\n', buffer, 20); 
  for (int i = 0 ; i < zmienna ; i++) 
  {
    Serial.println(buffer[i]);
  }

Tylko nie wiem nadal jak mam tą zmienną przesuwać się pomiędzy tymi znakami. 

 

Edytowano przez dlotko2000
Link do komentarza
Share on other sites

8 godzin temu, dlotko2000 napisał:

Tylko nie wiem nadal jak mam tą zmienną przesuwać się pomiędzy tymi znakami. 

Jaką zmienną i co przesuwać... możesz mi wytłumaczyć jak się przesuwa długość po linijce?

Coś mi się wydaje, że jesteś wielki luzak - nie znając podstaw języka bierzesz się za napisanie programu wymagającego nie tylko bardzo dobrej znajomości języka, ale umiejętności posługiwania się nim. Przekładając na język laików - masz nie tylko znać angielski, ale umieć napisać po angielsku dramat nie gorszy niż Hamlet. Moja rada: zastosuj po prostu grbl i nie próbuj skakać za wysoko, bo spadniesz. A jeśli uważasz że to nie jest za wysoko - przeczytaj sobie kod źródłowy grbl, i jak już będziesz wszystko rozumiał to zabierz się za pisanie swojego, lepszego programu.

 

 

  • 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

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.