体重と今日食べたもの

k1segawa.exblog.jp

ダイエット

ブログトップ

Japanino ArduinoISPで ATtiny13 で Atmel Studio 7 (37) (12/27)

Atmel が 2016年4月にMicrochipに買収されたのに伴い、最近公式ライターAVRISP mkIIが販売終了になってしまったので、ちょっと慌ててAVR Studioを落とそうとしたら、もうAtmel Studio 7しかダウンロードできなくなってしまっていた。

どんどん新しい環境になっているのでC/C++で開発できるかチェック。
公式のダウンロードサイトでは、Windows 10ではWeb インストールとオフライン インストールが選べるのだが、オフライン インストーラを起動しても「Windowsがこのプログラムの起動を中止しました」と出てセキュリティチェックではじかれてしまう。

仕方ないのでWeb インストール(物凄く時間がかかる)して起動すると、大分様相が変わっていた。
プログラムの組み方をググって、ソースを書いたり、設定を行うのに次のサイト様を参考にした。
Atmel Studio の環境立ち上げと 使用方法 - PDF

自分の環境は、Windows10 64bit、Atmel Studino 7.0.1188、ATtiny13A、Arduino ISPライタ、arvdudeの組み合わせなので、[メニュー][ツール][外部ツール]で環境設定行う。
a0034780_23405944.jpg

引数はサイト様がATmega168pのarduino用で、今回はATtiny13Aのワンチップマイコン直接用なのでちょっと違って、以下のようになる。
-p t13 -c avrisp -P \\.\COM3 -b 19200 -U flash:w:"$(ProjectDir)Debug\$(TargetName).hex":i -C C:\avrdude\avrdude.conf

この中でItemFileName→TargetNameになっている(ItemFileName=main、TargetName=GccApplication1)のは、サイト様の手順でソースを追加するとプロジェクト名はGccApplication1で変わらないが、ソースファイルはGccApplication1.c→main.cに変わっており(バージョンアップで変わったのだろう)、実際に出力されるHexファイル名はmain.hex→GccApplication1.hexに変わっているためだ。

その他のCOM3やC:\avrdude\avrdude.confは各自の環境による。
-F -v -Dは取り除いた。

また、[ソリューション エクスプローラ][GccApplication1で右クリック][プロパティ][Tool][Selected debugger/programmer][Custom Programming Tool]を選んでおく(SimulatorからCustom・・・へ変更する)
a0034780_00022486.jpg
デバイスはATtiny13Aを選ぶ。
a0034780_00012267.jpg
そしてソースはサイト様のをベースにATtiny13A用に修正し次のようになる。
/*
* GccApplication1
*
* Created: 2016/12/26 22:08:05
* Author : k1segawa
* License: free
*/

#ifndef F_CPU
#define F_CPU 9600000UL // 9.6 MHz clock speed
#endif
#include <avr/io.h>
#include <util/delay.h>

#define PB3 PORTB3 // PBx未定義のため

int main(void)
{
PORTB = 0x00; // ポートB出力方向決定時0出力準備
DDRB = (1<<PB3); // PB3 as output, other as input
while(1)
{
PORTB |= (1<<PB3); // Turns ON PB3 LEDs
_delay_ms(1000); // 1 second delay
PORTB &= ~(1<<PB3); // Turns OFF PB3 LEDs
_delay_ms(1000); // 1 second delay
}
}

サイト様はPORTDだがPORTBへ変更。新しい環境はPB3が未定義らしいので自分で定義。PORTB3を探し出すには、PORTBを右クリックして[Goto Implementation](定義へジャンプ)を選び探した。
a0034780_00183647.jpg

_BV()でもよい。

F7でビルド、[ツール][Deploy](設定内容による)で書込み。86バイトで、いつものThank you.で終了。

ビルドログは次の通り。

------ ビルド開始: プロジェクト:GccApplication1, 構成:Debug AVR ------
ビルドを開始しました。
プロジェクト "GccApplication1.cproj" (既定のターゲット):
ツール バージョン "14.0" でビルドしています。
false 条件により、ターゲット "PreBuildEvent" を省略しました。('$(PreBuildEvent)'!='') は (''!='') として評価されました。
ファイル "C:\Program Files (x86)\Atmel\Studio\7.0\Vs\Compiler.targets" 内にある、プロジェクト "c:\users\(ユーザ名)\Documents\Atmel Studio\7.0\GccApplication1\GccApplication1\GccApplication1.cproj" からのターゲット "CoreBuild" (ターゲット "Build" は依存):
タスク "RunCompilerTask"
タスク パラメーター:
ContentList=
main.c

(XHTML)


Program Memory Usage : 86 bytes 8.4 % Full
Data Memory Usage : 0 bytes 0.0 % Full
タスク "RunOutputFileVerifyTask" の実行が終了しました。
プロジェクト "GccApplication1.cproj" 内のターゲット "CoreBuild" のビルドが終了しました。
false 条件により、ターゲット "PostBuildEvent" を省略しました。('$(PostBuildEvent)' != '') は ('' != '') として評価されました。
ファイル "C:\Program Files (x86)\Atmel\Studio\7.0\Vs\Avr.common.targets" 内にある、プロジェクト "c:\users\(ユーザ名)\Documents\Atmel Studio\7.0\GccApplication1\GccApplication1\GccApplication1.cproj" からのターゲット "Build" (エントリ ポイント):
プロジェクト "GccApplication1.cproj" 内のターゲット "Build" のビルドが終了しました。
プロジェクト "GccApplication1.cproj" のビルドが終了しました。

ビルドに成功しました。
========== ビルド: 正常終了または最新の状態 1、失敗 0、スキップ 0 ==========

書込みログは次の通り。

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.11s

avrdude.exe: Device signature = 0x1e9007
avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file "c:\users\(ユーザ名)\Documents\Atmel Studio\7.0\GccApplication1\GccApplication1\Debug\GccApplication1.hex"
avrdude.exe: writing flash (86 bytes):

Writing | ################################################## | 100% 0.30s

avrdude.exe: 86 bytes of flash written
avrdude.exe: verifying flash memory against c:\users\(ユーザ名)\Documents\Atmel Studio\7.0\GccApplication1\GccApplication1\Debug\GccApplication1.hex:
avrdude.exe: load data flash data from input file c:\users\(ユーザ名)\Documents\Atmel Studio\7.0\GccApplication1\GccApplication1\Debug\GccApplication1.hex:
avrdude.exe: input file c:\users\(ユーザ名)\Documents\Atmel Studio\7.0\GccApplication1\GccApplication1\Debug\GccApplication1.hex contains 86 bytes
avrdude.exe: reading on-chip flash data:

Reading | ################################################## | 100% 0.30s

avrdude.exe: verifying ...
avrdude.exe: 86 bytes of flash verified

avrdude.exe: safemode: Fuses OK (E:FF, H:FF, L:7A)

avrdude.exe done. Thank you.

うまくいくと、GND~抵抗1kΩ~PB3に繋いだLEDが1秒おきに点滅する。

C/C++環境も構築できた。

[PR]
by k1segawa | 2016-12-27 00:03 | arduino, AVR | Comments(0)