Spisu treści:

Debugowanie szeregowe z CloudX: 3 kroki
Debugowanie szeregowe z CloudX: 3 kroki

Wideo: Debugowanie szeregowe z CloudX: 3 kroki

Wideo: Debugowanie szeregowe z CloudX: 3 kroki
Wideo: 3. Kurs Arduino - UART - komunikacja szeregowa [Tinkercad] 2024, Listopad
Anonim
Szeregowe debugowanie z CloudX
Szeregowe debugowanie z CloudX

W tym projekcie mam na celu wyjaśnienie koncepcji debugowania za pośrednictwem terminala szeregowego. Ale najpierw na początek wyjaśnijmy jego koncepcję poprzez jej znaczenia.

1. komunikacja szeregowa

komunikacja szeregowa służy do komunikacji między płytą CloudX a komputerem lub innymi urządzeniami. Wszystkie płyty CloudX mają co najmniej jeden widziany port szeregowy (znany również jako UART lub USART): Serial. Komunikuje się na cyfrowych pinach RX i TX z innymi hardwares lub modułami komunikacji szeregowej (takimi jak gsm i gps), podobnie jak z komputerem przez USB za pomocą karty SoftCard. Tak więc, jeśli używasz tych funkcji, nie możesz również używać TX i RX dla wejścia lub wyjścia cyfrowego. Możesz użyć wbudowanego monitora szeregowego środowiska CloudX do komunikacji z płytą CloudX. Kliknij przycisk monitora szeregowego na pasku narzędzi i wybierz tę samą szybkość transmisji, która jest używana w parametrze wywołanym do serialBegin().

2. Debuguj

Debugowanie oznacza po prostu identyfikację i usuwanie błędów (sprzętu komputerowego lub oprogramowania). Debugowanie polega na lokalizowaniu i poprawianiu błędów kodu w programie komputerowym. Debugowanie jest częścią procesu testowania oprogramowania i jest integralną częścią całego cyklu życia oprogramowania. Weźmy na przykład, że twój kod został skompilowany pomyślnie i testujesz swój sprzęt i nie działa on zgodnie z oczekiwaniami, chociaż istnieje wiele sposobów na debugowanie kodu; prostym i skutecznym sposobem debugowania jest użycie debugowania szeregowego. CloudX IDE generuje 2 typy plików po udanej kompilacji, plik HEX i COFF. Plik HEX jest ściśle kodem maszynowym, który jest ładowany do płyty w celu wykonania w świecie rzeczywistym, ale może również działać na oprogramowaniu symulacyjnym komputera, takim jak Proteus Isis, podczas gdy plik COFF jest czytelnym formatem wykonywalnym na oprogramowaniu symulacyjnym komputera (Proteus Isis). W tym zakresie rozważymy dwa podstawowe typy debugowania na protokole szeregowym,

1. Miękkie debugowanie szeregowe:

W tej metodzie każdy test i debugowanie odbywa się na komputerze za pomocą przydatnego oprogramowania, takiego jak Proteus ISIS. Ponieważ CloudX w zasadzie generuje plik COFF, zalecam używanie tego do symulacji na PC, ponieważ za jego pomocą można w zasadzie przechodzić między wierszami kodu i zastanawiać się, skąd pochodzi problem, a jeśli twój kod musi działać bez przechodzenia, używając wirtualnego terminala z „wirtualnego „tryb instrumentu”, zawsze możesz wiedzieć, na której linii znajduje się kontroler w danym momencie. spójrzmy na ten przykład kodu,

Krok 1:

Obraz
Obraz
Obraz
Obraz

/*

* Plik: newmain.c

* Autor: OGBOYE GODWIN * * Utworzono 28 czerwca 2018 o godz. 10:15 */

#włączać

#włączać

/* zrobimy

czerwony pin1 zielony pin2 żółty pin3 * przycisk pin4 */ char *tell= "hmmm, byłem w kontakcie"; setup(){ pinMode(1, WYJŚCIE); pinMode(2, WYJŚCIE); pinMode(3, WYJŚCIE); pinMode(4, WEJŚCIE); Serial_początek (9600); loop(){ while(!readPin(4)); Serial_writeText(tele); Serial_writeText("….przejście do czerwonego"); Serial_write (0x0D); portZapis(1, 0x00); pinSelect(1, WYSOKI); opóźnienia(200); // spróbuj usunąć wszystkie opóźnienia z komentowania i zobacz, co się stanie // i zastąp je (na pewno się spodoba!). while(!odczytajPin(4)); Serial_writeText(tele); Serial_writeText("….przejście do zielonego"); Serial_write (0x0D); portZapis(1, 0x00); pinSelect(2, WYSOKI); opóźnienia(200); // spróbuj usunąć wszystkie opóźnienia z komentowania i zobacz, co się stanie // i zastąp je (na pewno się spodoba!).

while(!odczytajPin(4));

Serial_writeText(tele); Serial_writeText("….przejście do żółtego"); Serial_write (0x0D); portWrite(1, 0x00); pinSelect(3, WYSOKI); opóźnienia(200); // spróbuj usunąć wszystkie opóźnienia z komentowania i zobacz, co się stanie // i zastąp je (na pewno się spodoba!). } }

dzięki temu możesz zobaczyć, jak ważne jest debugowanie Serial, jeśli usuniesz opóźnienia. gdybyś to zrobił, zobaczyłbyś, jak kłopotliwy może być ten prosty kod, jeśli jest wykonywany w prawdziwym świecie bez tych opóźnień.

Krok 2:

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

2. Debugowanie sprzętu:

W tej metodzie każdy test i debugowanie odbywa się poprzez podłączenie płytki prototypowej CloudX do komputera za pomocą karty softCard i wykorzystanie terminala szeregowego CloudX IDE (zalecane) lub innego przydatnego oprogramowania, takiego jak Proteus ISIS compim, realTerm itp. Wygeneruj COFF plik nie może być tutaj użyty, ponieważ ta metoda wymaga załadowania HEX do sprzętu, polecam używać go dla karty CloudX. Zwróć uwagę, że twój kod działa bez kroków, dzięki czemu zawsze możesz wiedzieć, gdzie jest linia, w której działa kontroler w danym momencie przez wyjście szeregowe. spójrzmy na ten kod ten sam przykład wymieniony powyżej, skonfiguruj swój sprzęt tak, aby był podobny do kopania czerwonej diody --------- do pin1 zielonej diody --------- pin2 żółtej diody -- ------- przycisk pin3 --------- pin4

Krok 3:

Obraz
Obraz

kroki

1. Użyj tego samego kodu co powyżej

2. załaduj na swoją tablicę

3. uruchom Terminal szeregowy CloudX, klikając przycisk „serial” na pasku narzędzi

4. wybierz żądany port i szybkość transmisji (9600 w tym samouczku)

5.uruchom terminal, klikając połącz (odłącz, jeśli chcesz wyjść)

6. Przy otwartym/podłączonym porcie, na chwilę naciśnij dowolny przycisk, a zobaczysz wyjście szeregowe pokazane w oknach terminala. Zwróć uwagę, że jeśli masz opóźnienia w kodzie, wiele linii wyjścia szeregowego działa tak szybko bez kontroli, zanim zdejmiesz ręce z przycisku. Jeśli z jakiegoś powodu w kodzie masz taki lub podobny problem, zawsze możesz użyć tej metody do debugowania.

Zalecana: