[マイコン] AVR ATtiny13でLED点滅 C++

[Windows11, Microchip Studio 7.0.2594]

久しぶりに電子工作の世界へ戻ってきました。

2016年8月にArduino UNOを購入して以来ちょくちょくいじってきましたが、あれからラズパイやJetson Nanoなどシングルボードコンピュータを経ての復帰です。

Arduinoは教育用ということでScketchというC言語風の簡易言語を使いますが、生意気にも購入当時はつぶしが効かないからと覚える気が全くなく、すぐに飽きてしまいました。

今はC/C++がそれなりに書けるようになり、アセンブリ言語の勉強にもなるので、Arduinoではなくマイコンを使ってみることにします。何に使うつもりだったのか覚えていませんが、たまたま8pinのATtiny13Aが手元にありました。

Arduinoマイコンの自製用にAVRISP mkIIという純正ライターを購入していたため(2016年9月)、すぐに取り掛かることができました。

とはいえ久しぶりのマイコンへの書き込みですから、大分手間取りました。今後のためにチェックシートを作成するつもりです。

それからIDEの名前がAtmel StudioからMicrochip Studioに変わっていました。UIはほとんど変わっていないと思います。

とりあえずC++でLEDを点滅させました。次はアセンブリ言語で書いてみたいです。

AVRISP mkIIによるATtiny13Aへの書き込み(USB, 電源接続前)
// ATtiny13A LED点滅
#define F_CPU 9600000UL

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
	DDRB |= 0b00000001; //PB0を出力に設定
	while (1)
	{
		PORTB |= 0b00000001; //PB0をON
		_delay_ms(200); //200ms待機
		PORTB &= ~0b00000001; //PB0をOFF
		_delay_ms(200); //200ms待機
	}
}