Język C dla małych urządzeń. Krótki kod o wielkich możliwościach - ebook
Język C dla małych urządzeń. Krótki kod o wielkich możliwościach - ebook
Wydawałoby się, że język C najlepsze lata ma już za sobą. Opracowano w końcu mnóstwo łatwych w użyciu i efektywnych wysokopoziomowych języków programowania. W rzeczywistości język C wciąż okazuje się niezastąpiony do tak ważnych celów, jak programowanie sterowników, systemów operacyjnych, kart graficznych, a także niewielkich mikrokontrolerów o ograniczonych zasobach. Właśnie teraz, w czasach burzliwego rozwoju internetu rzeczy, język C udowadnia swoją przydatność. Wystarczy nauczyć się tworzyć w nim czysty kod o niewielkich rozmiarach.
W tym podręczniku do praktycznej nauki programowania w języku C szczególną uwagę zwrócono na pisanie kodu umożliwiającego uzyskanie wysokiej wydajności w środowiskach o bardzo małych zasobach. Znalazło się tu gruntowne omówienie podstaw dobrego programowania w języku C. Opisano struktury kontrolne, operatory, funkcje i inne elementy składni C, a także zasady dobrego programowania i wzorce, dzięki którym można zmniejszać rozmiar skompilowanego programu. Przeanalizowano również środowisko Arduino, które jest świetną platformą docelową dla niewielkich programów napisanych w C. Zawarte tu informacje przydadzą się jednak każdemu, kto chce się zająć programowaniem dla systemów wbudowanych.
W książce między innymi:
- podstawy języka C, w tym typy danych, przepływ sterowania i funkcje
- zarządzanie pamięcią i działanie programów w prostych urządzeniach
- tworzenie czytelnego i łatwego w utrzymaniu kodu w języku C
- optymalizacja kodu pod kątem wydajności
- testowanie istniejących bibliotek i tworzenie własnych
Programowanie niskopoziomowe? Czysta radość z czystego C!
Spis treści
Wstęp
Rozdział 1. Podstawy języka C
- Mocne i słabe strony języka C
- Pierwsze kroki
- Wymagane narzędzia
- Tworzenie programu "Witaj, świecie"
- Kompilowanie kodu
- Uruchamianie kodu
- Kolejne kroki
Rozdział 2. Przechowywanie danych i wykonywanie instrukcji
- Instrukcje w języku C
- Separatory instrukcji
- Kolejność wykonywania instrukcji
- Zmienne i typy
- Uzyskiwanie danych od użytkownika
- Łańcuchy i znaki
- Liczby
- Nazwy zmiennych
- Przypisywanie zmiennych
- Funkcje printf() i scanf()
- Formaty funkcji printf()
- Formatowanie danych wyjściowych
- Instrukcja scanf() i parsowanie danych wejściowych
- Operatory i wyrażenia
- Operatory arytmetyczne
- Kolejność działań
- Rzutowanie typów
- Kolejne kroki
Rozdział 3. Sterowanie przepływem
- Wartości logiczne
- Operatory porównania
- Operatory logiczne
- Rozgałęzienia
- Instrukcja if
- Instrukcja switch
- Operator trójargumentowy i przypisanie warunkowe
- Instrukcje pętli
- Instrukcja for
- Instrukcja while
- Wersja do/while
- Zagnieżdżanie
- Zagnieżdżone pętle i obsługa tabel
- Zakres zmiennych
- Ćwiczenia
- Kolejne kroki
Rozdział 4. Bity i wiele bajtów
- Przechowywanie wielu danych w tablicach
- Tworzenie i modyfikowanie tablic
- Łańcuchy
- Tablice wielowymiarowe
- Dostęp do elementów w tablicach wielowymiarowych
- Przechowywanie bitów
- Liczby dwójkowe, ósemkowe i szesnastkowe
- Literały ósemkowe i szesnastkowe w języku C
- Wprowadzanie i wyświetlanie wartości ósemkowych i szesnastkowych
- Operatory bitowe
- Łączenie bitów i bajtów
- Wyniki konwersji
- Kolejne kroki
Rozdział 5. Funkcje
- Znane funkcje
- Działanie funkcji
- Proste funkcje
- Przesyłanie informacji do funkcji
- Przekazywanie typów prostych
- Przekazywanie łańcuchów do funkcji
- Różne typy
- Wychodzenie z funkcji
- Informacje zwracane
- Użycie zwracanych wartości
- Ignorowanie wartości zwracanych
- Wywołania zagnieżdżone i rekurencja
- Funkcje rekurencyjne
- Zakres zmiennych
- Zmienne globalne
- Funkcja main()
- Zwracanie wartości przez funkcję main()
- Argumenty wiersza poleceń i funkcja main()
- Kolejne kroki
Rozdział 6. Wskaźniki i referencje
- Adresowanie w języku C
- Wartość NULL i błędy związane ze wskaźnikami
- Tablice
- Zmienne lokalne i stos
- Zmienne globalne i sterta
- Arytmetyka wskaźników
- Wskaźniki do tablic
- Funkcje i wskaźniki
- Zarządzanie pamięcią tablic
- Przydzielanie pamięci za pomocą malloc()
- Zwalnianie pamięci za pomocą free()
- Struktury w języku C
- Definiowanie struktur
- Przypisywanie wartości do składowych struktur i dostęp do nich
- Wskaźniki do struktur
- Funkcje i struktury
- Podsumowanie składni wskaźnikowej
- Kolejne kroki
Rozdział 7. Biblioteki
- Biblioteka standardowa języka C
- Nagłówek stdio.h
- Nagłówek stdlib.h
- Nagłówek string.h
- Nagłówek math.h
- Nagłówek time.h
- Nagłówek ctype.h
- Połączenie wszystkich składników
- Praca z łańcuchami
- Obliczanie odsetek
- Wyszukiwanie potrzebnych bibliotek
- Kolejne kroki
Rozdział 8. Arduino - realne programowanie
- Zintegrowane środowisko programistyczne Arduino (Windows, Mac, Linux)
- Instalacja w systemie Windows
- Instalacja w systemie macOS
- Instalacja w systemie Linux
- Pierwszy projekt w Arduino
- Wybór płytki
- Witaj, diodo LED!
- Dodanie zewnętrznej diody LED
- Biblioteki Arduino
- Zarządzanie bibliotekami
- Użycie bibliotek Arduino
- Szkice Arduino i język C++
- Obiekty i zmienne języka C++
- Więcej ćwiczeń z obiektami
- Rozważania dotyczące języka C++
- Obiektowe zadanie domowe
- Kolejne kroki
Rozdział 9. Mniejsze systemy
- Środowisko Arduino
- Wartości specjalne
- Typy specjalne
- Wbudowane funkcje
- Przetestowanie możliwości środowiska Arduino
- Wejścia i wyjścia mikrokontrolera
- Czujniki i wejście analogowe
- Monitor portu szeregowego
- Czy tu jest gorąco?
- Wyświetlacze wielosegmentowe
- Przyciski i cyfrowe wejścia
- Jak bardzo gorąco jest?
- Zarządzanie pamięcią w środowisku Arduino
- Pamięć flash (PROGMEM)
- Pamięć statyczna
- Pamięć EEPROM
- Zapamiętywanie wyborów
- Przerwania
- Program obsługi przerwania
- Programowanie sterowane przerwaniami
- Ćwiczenia
- Kolejne kroki
Rozdział 10. Szybszy kod
- Konfiguracja
- Obliczenia za pomocą liczb zmiennoprzecinkowych i całkowitych
- Alternatywne rozwiązania do obliczeń zmiennoprzecinkowych
- Obliczenia matematyczne a brak obliczeń
- Tabele przeglądowe
- Obecny stan projektu
- Potęga potęgi 2
- Optymalizacje pętli
- Rozwijanie dla zabawy i zysku
- Rekurencja i iteracja
- Typ string i char[\
- Ostateczna wersja projektu
- Kolejne kroki
Rozdział 11. Tworzenie własnych bibliotek
- Tworzenie własnej biblioteki
- Dyrektywy preprocesora
- Makra preprocesora
- Definicje własnych typów
- Projekt modelu samochodu
- Projekty wykorzystujące wiele plików
- Tworzenie plików .ino
- Pliki nagłówkowe
- Importowanie bibliotek niestandardowych
- Implementacja komunikacji
- Modernizacja samochodu
- Budowanie urządzenia sterującego modułem radiowym
- Tworzenie biblioteki
- Uaktualnienie projektu samochodu
- Kontrolowanie sytuacji
- Ale jazda!
- Dokumentacja i dystrybucja
- Kolejne kroki
Rozdział 12. Jeszcze dalsze kroki
- Zagadnienia średnio zaawansowane i zaawansowane
- Internet rzeczy i Arduino
- Kody źródłowe dostępne w środowisku Arduino
- Inne mikrokontrolery
- Profesjonalne zastosowanie języków C i C++
- Powrót do przyszłości
Dodatek A. Sprzęt i oprogramowanie
Dodatek B. Opis specyfikatorów formatu
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-8632-7 |
Rozmiar pliku: | 12 MB |