sobota, 22 kwietnia 2017

C - Przydatne rady oraz pułapki dla programowania mikrokontrolerów

Ten post chciałbym poświęcić na opisanie kilku przydatnych elementów, rad, pułapek jakie można spotkać podczas programowania w C.

Instrukcja If:


Instrukcja warunkowa if nie wymaga opisania, należy przy niej pamiętać, że w przypadku takiej instrukcji:

  1. int i;
  2. if(i)
  3. {
  4.     //........
  5. }

wtorek, 18 kwietnia 2017

[4] ATxmega - Zapis danych do pamięci EEPROM

W tym poście chciałbym opisać sposób zapisu oraz odczytu danych z pamięci EEPROM mikrokontrolera ATXmega.

Krótki dokument od Atmela można znaleźć pod tym linkiem.

Dostęp do EEPROMu jest zapewniony przez kontroler NVM. Jest on także wykorzystywany aby uzyskać dostęp do fuse oraz lock bitów. Podczas korzystania z kontrolera należy się upewnić, że nie wykonuje on innych operacji. Wykonuje się to poprzez sprawdzenie bitu NVMBUSY w rejestrze STATUS.

piątek, 14 kwietnia 2017

[V] STM32F429I - Projekt - Zegar RTC, Wyświetlacz, Touchpad

Ten post poświęcę na przygotowanie programu obsługującego zegar czasu rzeczywistego w mikrokontrolerze STM32F429I. Do projektu dodatkowo zostanie dołożona obsługa wyświetlacza oraz touchpada w oparciu o biblioteki HAL'a.

Kwarc:


Jeśli chodzi o źródło taktowania układu to możliwe są dwa rozwiązania, kwarc wewnętrzny oraz zewnętrzny. Oba o wartościach 32.768 kHz. W obu płytkach discovery (STM32F407VG oraz STM32F429I) kwarc zewnętrzny nie został zamontowany, zostało na niego tylko przygotowane miejsce.

sobota, 8 kwietnia 2017

C# - Program komunikacyjny po Usarcie wersja V1.1

Tym razem chciałem przedstawić trochę zmienioną wersję programu komunikacyjnego po porcie COM.

Zmianie  uległ sposób wprowadzania danych oraz zostało dodane rysowanie wykresów dla procesora oraz dla portu COM. Usunąłem też dodatkowe zakładki, będą one dodawane w kolejnych wersjach programu.

Wykres danych od USART-u:


Tutaj w pierwszej kolejności został przygotowany program testowy dla Arduino Uno. Prezentuje się on następująco:

poniedziałek, 3 kwietnia 2017

[12] STM32F7 - ESP8266 cz. 3. Konfiguracja komend TCP/IP, zebrany kod

W tym poście chciałbym przedstawić komendy dotyczące TCP/IP dla układu ESP. Na końcu tego postu znajduje się pełna biblioteka z opisanym w trzech częściach kodem.

Komendy dotyczące TCP/IP:


AT+CIPSTATUS - (format: AT+CIPSTATUS) - sprawdza status połączenia. Nie podaje się do niej żadnego parametru. Należy tylko obsłużyć zwracane przez nie wartości. Są one w formacie:

[12] STM32F7 - ESP8266 cz. 2. Konfiguracja komend Wifi

Ten post będzie rozwinięciem poprzedniego dotyczącego mikrokontrolera ESP8266

Komendy Wifi


AT+CWMODE - (format: AT+CWMODE=[1..3]) - ustawienie trybu pracy Wifi. Do wyboru jest tryb klienta (1 ang. station mode), tryb dostępu (2 - ang. access point), czyli tworzona jest własne urządzenie do którego można się połączyć poprzez sieć wifi oraz połączenie obu trybów (3).

  1.         case Command_AT_CWMODE:
  2.             if(Wifi_Mode_Station == param || Wifi_Mode_Ap == param || Wifi_Mode_Ap_Station == param)
  3.             {
  4.                 sprintf(dane, "AT+CWMODE=%u", param);
  5.                 UART_SENDSTRING(ESP8266_USART, dane, CR_LF);
  6.             }
  7.         break;

[12] STM32F7 - ESP8266 cz.1 Konfiguracja USART-u oraz podstawowe komendy

Poniżej chciałbym przedstawić kod obsługujący ESP8266 po komendach AT na płytce STM32F7 Discovery. Dane przesyłane są przez UART, ja wybrałem UART7. Testowanie układu odbyło się na module ESP-WROOM-02.

Rys. 1. Układ ESP-WROOM-02 [elty]