Dzień dobry.
Potrzebuję przesłać odebrany kod z pilota na wyświetlacz GLCD, który pracuje na procku będącym Slave I2C. Slave czeka na następujący (przykładowy) ciąg znaków: "t", pierwszy znak, drugi znak (ew. trzeci i następne).
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Po stronie nadajnika jest Atxmega. Funkcja wysyłająca ciąg znaków po I2C(TWI) wygląda następująco:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
"*writeData" jest wskaźnikiem na ciąg znaków do wysłania. Instrukcja wysyłająca te znaki wygląda u mnie tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Jeśli tworzę zmienną
uint8_t test[] = {'t', 0, 15};, jest dobrze. Teraz zamiast "0" i "15" chcę zamieścić te kody z pilota. Próbowałem tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Wynik był kiepski - wyświetlacz wariował. Poczytałem trochę i dowiedziałem się, że nie można inicjować zmiennej zmiennymi. Zrobiłem tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Teraz działa dobrze, ale nie jestem pewien, czy to jest zgodne z dobrymi praktykami programistycznymi, czy tylko taka proteza... Czy zmienną "tekst" powinienem deklarować jako globalną, czy może to być zmienna lokalna?