Skocz do zawartości

Problem z prawidłowym odczytem danych z PROGMEM przez funkcję.


scalak4

Pomocna odpowiedź

#include <avr/io.h>		
#include <avr/pgmspace.h>
  
uint8_t znajdz_ciag(const char wejscie[], const char *szukanyCiag) ;

const char help[] PROGMEM = "help";
const char *const helpPointer PROGMEM = help;

void main(){
  
  while(1){
    
    if (znajdz_ciag(dane, helpPointer)) { ........ }
    
    
  }
}

uint8_t znajdz_ciag(const char wejscie[], const char *szukanyCiag) { //,
	 char buforSzukanyCiag [20];
    strcpy_P(buforSzukanyCiag, (char*)pgm_read_word(&(szukanyCiag)));
    char *znaleziony = strstr(wejscie, buforSzukanyCiag);
    wysylanie_tablicString(buforSzukanyCiag);  // tu sprawdzam co jest w buforze i wychodzi że zamiast "help" są tam jakieś śmieci.
      return 1; // Znaleziono ciąg, zwracamy 1
    } else {
        return 0; // Nie znaleziono ciągu, zwracamy 0
    }
    }

Problem polega na tym, że w buforze buforSzukanyCiag pojawiają się smieci, dlatego funkcja strstr() nie działa. Dodam jeszcze w głównej pętli while funkcja strcpy_P(buforSzukanyCiag, (char*)pgm_read_word(&(szukanyCiag))); bez problemu przekazuje prawidłowe dane do buforu. W funkcji niestety nie chce. Proszę o pomoc.

Edytowano przez scalak4
Link do komentarza
Share on other sites

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.