ATmega328PBを使う (2) プロジェクトの作成

#はじめに
ATmega328PBのソフトをMicrochip Studioで開発する備忘録です。
ボードはATmega328PB Xplained Miniを使います。
Xplained MiniにはデバッガーMini Embedded Debugger（mEDBG）が搭載されているので、このボードだけでソフトが作れます。
Xplained MiniにはLEDとスイッチが実装されているので、Lチカするプログラムを作成します。
ドライバーなどを自動生成してくれるAtmel Start Projectを使います。

#プロジェクトの作成
Microchip Studioを起動し、メニュー File - New - Atmel Start Projectを選びます。
![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68712/c195768a-e0b4-6c31-5d57-5136ed31548f.png)

Atmel Startのページが表示され、プロジェクト作成ウィザードが始まります。
まずはデバイスを選択します。ボードからも選べるのでATmega328PB Xplained Miniを選びCREATE NEW PROJECTボタンを押します。
![002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68712/fb8fc3e7-0c4d-9803-8d4f-7e2522a42cd9.png)

コンポーネントを作成する画面になります。
![003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68712/a59a0f1a-ff1d-0c77-e668-68edae8cc2f3.png)

#プロジェクトの設定
##プロジェクトの名前の設定
プロジェクト名を変更します。
GENERALの下にあるRename componentボタンを押すとダイアログが表示されるので入力します。

##CPU設定
CPUボタンを押すとSLEEP、CLK等の設定ができます。
![004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68712/e35aaa55-24da-3c10-ec56-64da1c05fb60.png)

##コンポーネント追加
TimerやUartなどのコンポーネントを追加するにはAdd software componentボタンを押します。
ダイアログが表示されるので、追加するコンポーネントを選択します。
![005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68712/c4841a1a-d141-8881-0aaa-bab0eb102206.png)

プロジェクトの下に追加したコンポーネントが表示され、それを選択すると設定が可能となります。
![006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68712/77705610-84f4-97d0-6f68-d3db7d9b4313.png)

##ポート設定
ポートの設定を行います。
コンポーネントの設定でポートを選択すると自動的に反映されます。
LEDやスイッチのような入出力の設定はPINMUX CONFIGURATORで行います。
設定するポートを選択すると画面下部に内容が表示されるので、User Lable、Pin Mode等を設定します。
![007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68712/5d445e15-1745-e66d-3f55-bb5fa8a22113.png)
今回はLEDとSWを設定しました。

##クロックの設定
クロック周波数の設定が必要であればCLOCK CONFIGURATORにて設定します。
画面左側にあるCLOCKSを選択すると現在の設定が表示され歯車ボタンで設定を変更します。
![008.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68712/584a14cf-75c0-37fc-5979-35c691d5844c.png)

##プロジェクトの生成
一通り設定できたら、GENERATE PROJECTを押してプロジェクトを作成します。
作成場所、コンパイラー等を入力し作成します。
![009.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68712/3a3d2463-f2cd-0352-8061-a5cc76ce1407.png)

Solution Explorerで作成されたファイルを見ることができます。
![010.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68712/d727487b-fcde-9f49-2ce2-9e5c55880f8a.png)

##プロジェクトの設定（デバッガーの設定）
続けてプロジェクトの設定を行います。
メニューのProject - Propertiesを選択します。
TOOLタブからデバッガーを設定します。あらかじめXplained Miniは接続しておきます。
現在接続され使用可能なデバッガが表示されるので選択します。
![011.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68712/6df5e09d-3819-5d80-5f2e-a1cd6e078974.png)
自動的に選択されないので、設定しておかないと書き込みしようとしてもエラーとなります。

#プログラムの作成
main.cにスイッチを押している間LEDを点灯させるプログラムを書きます。
初期化関数の呼び出しとmainループは自動生成されます。

```C++
#include <atmel_start.h>

int main(void)
{
	/* Initializes MCU, drivers and middleware */
	atmel_start_init();

	/* Replace with your application code */
	while (1) {
		if (SW_get_level() == false) {
			LED_set_level(true);
		} else {
			LED_set_level(false);
		}
	}
}
```

##ビルド
ビルドボタンを押してビルドを開始します。
![012.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68712/3754b9fa-92ad-78e5-4c98-cef7e2975541.png)


##デバッグの実行
実行ボタンを押すとプログラムが書き込まれ、プログラムが実行されます。
![013.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68712/4b81e62e-50e3-29d5-f0ad-9835d62488f7.png)

#コンポーネントの設定変更など
コンポーネントの追加変更やポートの変更を行う場合は、Atmel Start Projectから修正します。
Solution Explorerのプロジェクト名を右クリックし、Re-Configure Atmel Start Projectを選択します。
![014.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68712/345704ef-459d-c4de-fdac-1fca77899841.png)


以上です。間違い等あれば教えてください。