\chapter{Programowanie mikrokontrolerów AVR ATmega}
Układy mikroprocesorowe AVR produkowane przez firmę Atmel są obecnie najpopularniejszą i najbardziej dostępną na rynku rodziną mikroprocesorów. Wynika to z prostoty ich programowania, łatwo dostępnej dokumentacji i darmowych narzędzi. ``Rdzeń rodziny AVR zaprojektowano z myślą o językach wysokiego poziomu - konkretnie C. Przy pracach nad układem konsultowano się z ekspertami w dziedzinie implementacji tego języka, czego wynikiem jest elastyczny i wygodny dla programisty rdzeń, którego wydajności (pamiętając, że mamy do czynienia z układem ośmiobitowym) nie można wiele zarzucić.''~\cite{baranowski_avr} Z tego też powodu programy przedstawione w niniejszym rozdziale napisane będą w języku C a jedynie niektóre przykłady podane będą w Assemblerze.

W dalszej części omówiona zostanie instalacja i konfiguracja podstawowych narzędzi służących do tworzenia oprogramowania dla mikrokontrolerów AVR. Istnieje wiele programów, które ułatwiają programowanie zarówno w języku C jak i assemblerze. W przypadku systemu operacyjnego Windows możemy skorzystać z generycznego produktu firmy Atmel jakim jest \textit{AVR Studio}\footnote{program dostępny na stronie \url{http://atmel.com/avrstudio}}. Dla platform Unix-owych (np.: Linux, BSD, Solaris) istnieje Open-Sourcowe narzędzie \textit{KontrollerLab}\footnote{program dostępny na stronie \url{http://cadmaniac.org}}. 
%TODO opisać szerzej rodzinę avr

Pokaźnym zbiorem informacji na temat tej serii mikrokontrolerów jest forum internetowe użytkowników mieszczące się pod adresem \url{http://www.avrfreaks.net}

Wszystkie użyte pliki instalacyjne znajdują się na załączonej płycie CD w katalogu \textit{$\backslash$instalki}. Na płycie znajdują się następujące wersje oprogramowania:
\begin{itemize}
	\item AVR Studio 4.13 (marzec 2008) z poprawkami SP1 i SP2
	\item WinAVR 2007-12-21 - pakiet zawierający AVR-GCC i inne przydatne narzędzia
	\item PonyProg2000 2.07c - program obsługujący wiele programatorów (m.in. STK-200)
\end{itemize}


\section{Instalacja AVR Studio 4}
AVR Studio jest najpopularniejszym zintegrowanym środowiskiem programistycznym (ang. IDE - Integrated development environment) dla mikrokontrolerów AVR. Popularność jego wynika z faktu iż jest ono wydawane przez firmę Atmel - producenta mikrokontrolerów AVR.

\subsection{Instalacja programu}
Aby rozpocząć instalację należy uruchomić plik \textit{aStudio4b528.exe} z katalogu \textit{$\backslash$instalki} znajdującego się na załączonej płycie CD (patrz rysunek~\ref{avr_studio-inst_01}. Alternatywnie można ściągnąć nowszą wersję programu ze strony producenta (\url{http://atmel.com/avrstudio}).

\begin{figure}[ht]
	\begin{center}
		\includegraphics[height=6cm]{img/avr_studio-inst_01}
		\caption{AVR Studio - Instalacja}
		\label{avr_studio-inst_01}
	\end{center}
\end{figure}

\begin{figure}[!ht]
Okno uruchmionego instalatora przedstawione jest na rysunku~\ref{avr_studio-inst_02}.
	\begin{center}
		\includegraphics[height=9cm]{img/avr_studio-inst_02}
		\caption{AVR Studio - Okno instalatora}
		\label{avr_studio-inst_02}
	\end{center}
\end{figure}

\begin{figure}[!ht]
Aby kontynuować instalację konieczna jest akceptacja licencji.
	\begin{center}
		\includegraphics[height=9cm]{img/avr_studio-inst_03}
		\caption{AVR Studio - Akceptacja licencji}
		\label{avr_studio-inst_03}
	\end{center}
\end{figure}

\begin{figure}[!ht]
Po akceptacji licencji należy wybrać katalog, do którego zostanie zainstalowana aplikacja. Domyślnie jest to \textit{C:$\backslash$Program Files$\backslash$Atmel$\backslash$AVR Tools}
	\begin{center}
		\includegraphics[height=9cm]{img/avr_studio-inst_04}
		\caption{AVR Studio - Wybór katalogu instalacyjnego}
		\label{avr_studio-inst_04}
	\end{center}
\end{figure}

\begin{figure}[!ht]
W śród opcji instalacyjnych domyśnie zaznaczona jest aktualizacja sterownika USB do programatorów firmy Atmel. W przypadku korzystania  z zestawu uruchmieniowego 300-K bądź innego programatora kompatybilnego z STK200 lub STK300 aktualizacja ta nie jest wymagana.
	\begin{center}
		\includegraphics[height=9cm]{img/avr_studio-inst_05}
		\caption{AVR Studio - Opcje instalacji}
		\label{avr_studio-inst_05}
	\end{center}
\end{figure}

\begin{figure}[ht]
Możemy przystąpić do instalacji oprogramowania.
	\begin{center}
		\includegraphics[height=9cm]{img/avr_studio-inst_06}
		\caption{AVR Studio - Rozpoczęcie instalacji}
		\label{avr_studio-inst_06}
	\end{center}
\end{figure}

\begin{figure}[ht]
	\begin{center}
		\includegraphics[height=9cm]{img/avr_studio-inst_07}
		\caption{AVR Studio - Proces instalacji}
		\label{avr_studio-inst_07}
	\end{center}
\end{figure}

\begin{figure}[ht]
AVR Studio 4 zostało zainstalowane
	\begin{center}
		\includegraphics[height=9cm]{img/avr_studio-inst_08}
		\caption{AVR Studio - Zakończenie instalacji}
		\label{avr_studio-inst_08}
	\end{center}
\end{figure}

\clearpage

\subsection{Instalacja poprawki SP1}
Po zainstalowaniu podstawowej wersji AVR Studio konieczne jest zainstalowanie poprawki SP1 (ang. Service Pack)

\begin{figure}[!ht]
	\begin{center}
		\includegraphics[height=6cm]{img/avr_studio-inst_09}
		\caption{AVR Studio - Instalacja popraki SP1}
		\label{avr_studio-inst_09}
	\end{center}
\end{figure}

\begin{figure}[!ht]
W celu instalacji poprawki SP1 dla AVR Studio 4 należy postępować analogicznie jak przy instalaji podstawowej wersji oprogramowania.
	\begin{center}
		\includegraphics[height=9cm]{img/avr_studio-inst_10}
		\caption{AVR Studio SP1 - Okno instalatora}
		\label{avr_studio-inst_10}
	\end{center}
\end{figure}

\begin{figure}[ht]
	\begin{center}
		\includegraphics[height=9cm]{img/avr_studio-inst_11}
		\caption{AVR Studio SP1 - Opcje aktualizacji}
		\label{avr_studio-inst_11}
	\end{center}
\end{figure}

\begin{figure}[ht]
	\begin{center}
		\includegraphics[height=9cm]{img/avr_studio-inst_12}
		\caption{AVR Studio SP1 - Zakończenie aktualizacji}
		\label{avr_studio-inst_12}
	\end{center}
\end{figure}

\clearpage

\subsection{Instalacja poprawki SP2}
Po zainstalowaniu aktualizacji SP1 należy przeprowadzić kolejną aktualizację - tym razem do wersji SP2.

\begin{figure}[!ht]
	\begin{center}
		\includegraphics[height=6cm]{img/avr_studio-inst_13}
		\caption{AVR Studio - Instalacja popraki SP1}
		\label{avr_studio-inst_13}
	\end{center}
\end{figure}

\begin{figure}[!ht]
W celu instalacji poprawki SP2 dla AVR Studio 4 należy postępować identycznie jak przy instalaji poprawki SP1.
	\begin{center}
	\includegraphics[height=9cm]{img/avr_studio-inst_14}
		\caption{AVR Studio SP1 - Okno instalatora}
		\label{avr_studio-inst_14}
	\end{center}
\end{figure}

\begin{figure}[ht]
	\begin{center}
		\includegraphics[height=9cm]{img/avr_studio-inst_15}
		\caption{AVR Studio SP1 - Opcje aktualizacji}
		\label{avr_studio-inst_15}
	\end{center}
\end{figure}

\begin{figure}[ht]
	\begin{center}
		\includegraphics[height=9cm]{img/avr_studio-inst_16}
		\caption{AVR Studio SP1 - Zakończenie aktualizacji}
		\label{avr_studio-inst_16}
	\end{center}
\end{figure}

\clearpage

\section{Instalacja WinAVR}
AVR-GCC jest darmowym kompilatorem języka C (i assemblerem) dla platformy AVR utworzonym w ramach projektu GNU\footnote{więcej informacji na stronie www.gnu.org}. Zawarte w tym pakiecie oprogramowanie jest wydawane na licencji BSD bądź GNU GPL w wersji 2 lub nowszej, co umożliwia zastosowanie tego pakietu nawet do celów komercyjnych. Pełna teść tej licencji w języku angielskim znajduje się na załączonej płycie w pliku \textit{gpl-2.0.txt}.

\begin{figure}[!ht]
	\begin{center}
		\includegraphics[height=6cm]{img/winavr-inst_01}
		\caption{WinAVR - Instalacja}
		\label{winavr-inst_01}
	\end{center}
\end{figure}

\begin{figure}[!ht]
Po uruchomieniu instalator zapyta nas o wybór języka instalacji.
	\begin{center}
		\includegraphics[height=3cm]{img/winavr-inst_02}
		\caption{WinAVR - Wybór języka}
	\label{winavr-inst_02}
	\end{center}
\end{figure}

\begin{figure}[!ht]
Po wybraniu języka zostanie toworzone główne okno instalacji.
	\begin{center}
		\includegraphics[height=9cm]{img/winavr-inst_03}
		\caption{WinAVR - Okno instalatora}
		\label{winavr-inst_03}
	\end{center}
\end{figure}

\begin{figure}[!ht]
Aby kontynuować należy zaakceptować warunki licencji.
	\begin{center}
		\includegraphics[height=9cm]{img/winavr-inst_04}
		\caption{WinAVR - Akceptacja licencji}
		\label{winavr-inst_04}
	\end{center}
\end{figure}

\begin{figure}[ht]
W oknie wyboru katalogu instalacyjnego należy wpisać \textit{C:$\backslash$Program Files$\backslash$WinAVR$\backslash$}
	\begin{center}
		\includegraphics[height=9cm]{img/winavr-inst_05}
		\caption{WinAVR - Wybór katalogu instalacyjnego}
		\label{winavr-inst_05}
	\end{center}
\end{figure}

\begin{figure}[ht]
W oknie wyboru komponentów instalacji należy zaznaczyć wszystkie opcje.
	\begin{center}
		\includegraphics[height=9cm]{img/winavr-inst_06}
		\caption{WinAVR - Opcje instalacji}
		\label{winavr-inst_06}
	\end{center}
\end{figure}

\begin{figure}[ht]
Rozpocznie się instalacja oprogramowania.
	\begin{center}
		\includegraphics[height=9cm]{img/winavr-inst_07}
		\caption{WinAVR - Proces instalacji}
		\label{winavr-inst_07}
	\end{center}
\end{figure}

\begin{figure}[ht]
Koniec instalacji.
	\begin{center}
		\includegraphics[height=9cm]{img/winavr-inst_08}
		\caption{WinAVR - Zakończenie instalacji}
		\label{winavr-inst_08}
	\end{center}
\end{figure}

\clearpage

\section{Instalacja PonyProg2000}
PonyProg2000 to jeden z najpopularniejszych i darmowych programów do opsługi programatorów mikrokontrolerów AVR. Jest on ciągle aktualizowany i posiada wsparcie niemalże wszystkich układów z serii AVR. Program ten jest również wydany na licencji GPL.

\begin{figure}[!ht]
	\begin{center}
		\includegraphics[height=6cm]{img/ponyprog-inst_01}
		\caption{PonyProg2000 - Instalacja}
		\label{ponyprog-inst_01}
	\end{center}
\end{figure}


\begin{figure}[!ht]
	Po uruchomieniu istalatora pokaże się treść licencji oprogramowania, którą należy zaakceptować.
	\begin{center}
		\includegraphics[height=9cm]{img/ponyprog-inst_02}
		\caption{PonyProg2000 - Okno instalatora}
		\label{ponyprog-inst_02}
	\end{center}
\end{figure}

\begin{figure}[!ht]
	Instalację zaleca się przeprowadzić do domyślnego katalogu: \textit{C:$\backslash$Program Files$\backslash$PonyProg2000$\backslash$}
	\begin{center}
		\includegraphics[height=9cm]{img/ponyprog-inst_03}
		\caption{PonyProg2000 - Wybór katalogu instalacyjnego}
		\label{ponyprog-inst_03}
	\end{center}
\end{figure}

\begin{figure}[!ht]
Następnie instalator zapyta nas w jakim katalogu \textit{Menu Start} chcemy utowrzyć sktóty do programu (zaleca się pozostawienie domyślnego: \textit{PonyProg})
	\begin{center}
		\includegraphics[height=9cm]{img/ponyprog-inst_04}
		\caption{PonyProg2000 - Wybór katalogu skrótów Menu Start}
		\label{ponyprog-inst_04}
	\end{center}
\end{figure}

\begin{figure}[ht]
	Instalator zażąda potwierdzenia wybranych opcji instalacji. Po czym przystąpi do instalacji.
	\begin{center}
		\includegraphics[height=9cm]{img/ponyprog-inst_05}
		\caption{PonyProg2000 - Akceptacja konfiguracji i rozpoczęcie instalacji}
		\label{ponyprog-inst_05}
	\end{center}
\end{figure}

\begin{figure}[ht]
	Po zainstalowaniu programu mamy możliwość obejrzenia pliku \textit{readme}.
	\begin{center}
		\includegraphics[height=9cm]{img/ponyprog-inst_06}
		\caption{PonyProg2000 - Zakończenie instalacji}
		\label{ponyprog-inst_06}
	\end{center}
\end{figure}

\clearpage

\section{Symulacja prostego programu}
W tej części zostanie opisany od podstaw sposób symulacji prostych programów na mikrokontrolery ATmega w środowisku AVR Studio. Najpierw zostanie opisana symulacja programu napisanego w języku C++ a następnie omówiony zostanie analogiczny przykład w Assemblerze.

\begin{figure}[!ht]
	\begin{center}
		\includegraphics[width=14cm]{img/demo1-avrstudio_01}
		\caption{Uruchamianie AVR Studio 4}
		\label{demo1-avrstudio_01}
	\end{center}
\end{figure}

\subsection{Program w C++}
Ze względu na dostępność bibliotek \textit{avrlibc} mikrokontrolery AVR są najczęściej programowane w języku C. Rozdział ten opisuje prosty program dla mikrokontorlera AVR napisany w tym właśnie języku - począwszy od stworzenia projektu do jego symulacji.
\subsubsection{Tworzenie projektu}

\begin{figure}[!ht]
Pierwszą czynnością jaką należy zrobić po uruchmieniu AVR Studio jest utworzenie projektu. W tym celu z ekranu powitalnego wybieramy \textit{New Project}.
	\begin{center}
		\includegraphics[width=10cm]{img/demo1-avrstudio_02}
		\caption{Utworzenie projektu w AVR Studio 4}
		\label{demo1-avrstudio_02}
	\end{center}
\end{figure}

\begin{figure}[!ht]
Następnie w oknie tworzenia nowego projektu ustawiamy jego typ na: \textit{AVR GCC} wpisujemy jego nazwę (np: \textit{ImięNazwisko\_1})
oraz wybieramy ścieżkę zapisu projektu. Patrz rysunek~\ref{demo1-avrstudio_03}.
	\begin{center}
		\includegraphics[width=10cm]{img/demo1-avrstudio_03}
		\caption{Konfiguracja nowego projektu w AVR Studio 4}
		\label{demo1-avrstudio_03}
	\end{center}
\end{figure}

\begin{figure}[!ht]
Ostatnią czynnością jest wybór układu docelowego projektu - na tej podstawie przeprowadzana będzie symulacja.
	\begin{center}
		\includegraphics[width=10cm]{img/demo1-avrstudio_04}
		\caption{Konfiguracja symulacji projektu}
		\label{demo1-avrstudio_04}
	\end{center}
\end{figure}

\begin{figure}[!ht]
Po wykonaniu powyższych czynności otworzy nam się puste okno projektu.
	\begin{center}
		\includegraphics[width=14cm]{img/demo1-avrstudio_05}
		\caption{Pusty projekt}
		\label{demo1-avrstudio_05}
	\end{center}
\end{figure}

\clearpage
\subsubsection{Konfiguracja}
Po utowrzeniu projektu należy przeprowadzić jego konfigurację. W tym celu należy z menu \textit{Project} wybrać opcję \textit{Configuration Options}.
\begin{figure}[!ht]
	\begin{center}
		\includegraphics[width=4cm]{img/demo1-avrstudio_06}
		\caption{Menu projektu}
		\label{demo1-avrstudio_06}
	\end{center}
\end{figure}

\begin{figure}[!ht]
W oknie konfiguracji projektu należy ustawić następujące opcje:
\begin{itemize}
 \item \textbf{Device:} atmega32  \textit{(typ układu)}
 \item \textbf{Frequency:} 8000000 \textit{(częstotliwość taktowania)}
 \item \textbf{Optimization:} -Os \textit{(stopień optymalizacji kompilatora)}
\end{itemize}

	\begin{center}
		\includegraphics[width=12cm]{img/demo1-avrstudio_07}
		\caption{Ustawienia projektu}
		\label{demo1-avrstudio_07}
	\end{center}
\end{figure}

\clearpage
\subsubsection{Programowanie}
Poniżej znajuje się przykładowy program dla mikrokontrolera AVR napisany w jęzku C. Dokumentacja do bibliotek avrlibc znajuje się na oficjalnej stronie projektu\footnote{\url{http://www.nongnu.org/avr-libc/user-manual/}}. Znaleźć ją można również na załączonym dyku CD w katalogu \textit{$\backslash$dokumenty$\backslash$avrlibc$\backslash$avr-libc-user-manual-1.6.1}
\lstinputlisting[language=C]{src/demo1/demo1.c}

Skonfigurowany i gotowy do uruchmienia projekt zawierajacy powyższy kod można znaleźć na załączonej płycie cd w katalogu \textit{$\backslash$zrodla$\backslash$demo1}

Dla poprawnego przebiegu symulacji powyższego kodu należy zakomentować linijkę 
\lstinputlisting[language=C,firstline=18,lastline=18]{src/demo1/demo1.c}


\clearpage
\subsubsection{Kompilacja}
Po wprowadzeniu kodu należy go skompilować poprzez wybranie ikony budowania projeku na pasku narzędzi (patrz rysunek~\ref{demo1-avrstudio_08}), bądź przyciskając klawisz F7.
\begin{figure}[!ht]
	\begin{center}
		\includegraphics[width=6cm]{img/demo1-avrstudio_08}
		\caption{Kompilacja projektu}
		\label{demo1-avrstudio_08}
	\end{center}
\end{figure}

\begin{figure}[!ht]
	Jeżeli kod nie zawiera błędów powinien zostać skompilowany. Informację o błędach, ostrzerzeniach i informacjach kompilatora zawiera okno statusowe znajdujące się w dolnej części ekranu.
	\begin{center}
		\includegraphics[width=14cm]{img/demo1-avrstudio_09}
		\caption{Okno statusowe}
		\label{demo1-avrstudio_09}
	\end{center}
\end{figure}

\clearpage
\subsubsection{Symulacja/Debuggowanie}
Aby przeprowadzić symulację napisanego programu. należy nacisnąć przycisk \textit{``Start Debugging''} znajdujący się na głównym pasku narzędzi (patrz rysunek \ref{demo1-avrstudio_10}).
\begin{figure}[!h]
	\begin{center}
		\includegraphics[width=6cm]{img/demo1-avrstudio_10}
		\caption{Uruchomienie Symulacji}
		\label{demo1-avrstudio_10}
	\end{center}
\end{figure}

Po przejściu w tryb symulacji zostanie wyróżniona główna funkcja programu (funkcja \textit{main()}).
\begin{figure}[!h]
	\begin{center}
		\includegraphics[width=14cm]{img/demo1-avrstudio_11}
		\caption{Interfejs Symulacji}
		\label{demo1-avrstudio_11}
	\end{center}
\end{figure}

\clearpage
W trybie symulacji, po prawej stronie ekranu widoczny jest podgląd rejestrów mikrokontrolera.
\begin{figure}[!h]
	\begin{center}
		\includegraphics[width=6cm]{img/demo1-avrstudio_12}
		\caption{Okno podglądu urządzeń wewnętrznych}
		\label{demo1-avrstudio_12}
	\end{center}
\end{figure}

Aby sporuszać się po programie możemy użyć kliku operacji, są to m. in:
\begin{itemize}
 \item \textbf{Step over} - wywołuje kolejną operację i przechodzi do następnej linijki.
 \item \textbf{Step into} - zagłąbia się w kod kolejnej operaji.
 \item \textbf{Go to cursor} - wykonuje program aż dojdzie do zaznaczonej linijki.
 \item \textbf{Breakpoint} - breakpointy ustawiane są na liniach kodu, jeżeli program jest uruchomiony i natrafi na breakpoint, jego praca zostaje wstrzymywana i aplikacja przechodzi w tryb debuggowania.
\end{itemize}

\begin{figure}[!h]
	\begin{center}
		\includegraphics[width=6cm]{img/demo1-avrstudio_13}
		\caption{Przeprowadzanie symulacji 1}
		\label{demo1-avrstudio_13}
	\end{center}
\end{figure}

\clearpage
Na poniższym przykładzie przedstawiona jest sesja symulacji/debuggowania.
\begin{figure}[!h]
	\begin{center}
		\includegraphics[width=12cm]{img/demo1-avrstudio_14}
		\caption{Przeprowadzanie symulacji 2}
		\label{demo1-avrstudio_14}
	\end{center}
\end{figure}

Wykonując symulację tego programu powinniśmy zaobserwować zmiany stanu portu wyjściowego A, tak jak pokazuje to rysunek \ref{demo1-avrstudio_15}.
\begin{figure}[!h]
	\begin{center}
		\includegraphics[width=7cm]{img/demo1-avrstudio_15}
		\includegraphics[width=7cm]{img/demo1-avrstudio_16}
		\caption{Podgląd portu A1}
		\label{demo1-avrstudio_15}
	\end{center}
\end{figure}

Aby zatrzymać symulację/debuggowanie należy wcisnąć przycisk \textit{``Stop Debugging''} z głównego paska narzędzi (patrz rysunek \ref{demo1-avrstudio_17})
\begin{figure}[!h]
	\begin{center}
		\includegraphics[width=6cm]{img/demo1-avrstudio_17}
		\caption{Zatrzymanie symulacji}
		\label{demo1-avrstudio_17}
	\end{center}
\end{figure}

\clearpage
\subsubsection{Programowanie mikrokontrolera}

Aby zaprogramować mikrokontroler należy uruchomić program \textit{PonyProg2000}.
\begin{figure}[!h]
	\begin{center}
		\includegraphics[width=12cm]{img/demo1-ponyprog_01}
		\caption{Uruchamianie programatora PonyProg2000}
		\label{demo1-ponyprog_01}
	\end{center}
\end{figure}

W głównym oknie programu wybieramy \textit{Interface Setup...} z menu \textit{Setup}
\begin{figure}[!h]
	\begin{center}
		\includegraphics[width=14cm]{img/demo1-ponyprog_02}
		\caption{Główne okno programatora PonyProg2000}
		\label{demo1-ponyprog_02}
	\end{center}
\end{figure}

W nowo otworzonym oknie konfigurujemy ustawienia programatora (na rysunku \ref{demo1-ponyprog_03} przedstawione są ustawienia dla programatora STK200)
\begin{figure}[!h]
	\begin{center}
		\includegraphics[width=6cm]{img/demo1-ponyprog_03}
		\caption{Konfiguracja programatora}
		\label{demo1-ponyprog_03}
	\end{center}
\end{figure}

\clearpage
Z menu \textit{Device} wybieramy odpowiedni typ mikrokontrolera.
\begin{figure}[!h]
	\begin{center}
		\includegraphics[width=14cm]{img/demo1-ponyprog_04}
		\caption{Wybór mikrokontrolera}
		\label{demo1-ponyprog_04}
	\end{center}
\end{figure}

Korzystając z opcji \textit{Open Program (FLASH) File...} z menu \textit{File} otwieramy plik do zaprogramowania.
\begin{figure}[!h]
	\begin{center}
		\includegraphics[width=14cm]{img/demo1-ponyprog_05}
		\caption{Otwarcie pliku 1}
		\label{demo1-ponyprog_05}
	\end{center}
\end{figure}

\clearpage
Przechodzimy do katalogu projektu AVRStudio i wybieramy plik o rozszerzeniu \textit{\*.hex} i nazwie takiej jak projekt.
\begin{figure}[!h]
	\begin{center}
		\includegraphics[width=8cm]{img/demo1-ponyprog_06}
		\caption{Otwarcie pliku 2}
		\label{demo1-ponyprog_06}
	\end{center}
\end{figure}

Zostanie otworzony program.
\begin{figure}[!h]
	\begin{center}
		\includegraphics[width=14cm]{img/demo1-ponyprog_07}
		\caption{Otwarcie pliku 3}
		\label{demo1-ponyprog_07}
	\end{center}
\end{figure}

\clearpage
Aby skopiować go do mikrokontrolera wybieramy polecenie \textit{Write All...} z menu \textit{Command}.
\begin{figure}[!h]
	\begin{center}
		\includegraphics[width=14cm]{img/demo1-ponyprog_08}
		\caption{Zapisywanie do urządzenia}
		\label{demo1-ponyprog_08}
	\end{center}
\end{figure}

%\clearpage
%\subsubsection{Testowanie programu}

%\clearpage
%\subsection{Program w Assemblerze}
%\subsubsection{Konfiguracja}
%\clearpage
%\subsubsection{Programowanie}
%\clearpage
%\subsubsection{Kompilacja}
%\clearpage
%\subsubsection{Symulacja}
%\clearpage
%\subsubsection{Testowanie na mikrokontrolerze}
%\clearpage

