Arduino 内臓RCクロック8MHzでPB6,PB7を使えるようにしてPORTBを8ビットで動かそう
ここを参考にしました
https://blog.goediy.com/?p=625
ファイル→
環境設定の
追加のボードマネージャのURLに
“https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json”
ツール→
ボード→
ボードマネージャー
MiniCore
バージョン2.1x をインストール
ツール→
ボード→MiniCore→ATmega328
ツール→
ボード→Clock:"Internal 8MHz"
ツール→
書き込み装置→"AVRISP mkⅡ(MiniCore)" か "STK500 as ISP(MiniCore)"
なおブートローダーもこの設定で
書き込み装置は"Arduino as IPS(MiniCore)" で行う
特に内部のファイルを書き換える必要はなく、
PB6 = 20
PB7 = 21
として使うことが出来ます
そして8ビットポート PB0-7を
PORTBとして使用できます
サンプルスケッチ 1
/*
Arduino 内臓RCクロック8MHz
PORTB 0-7にLEDをつないで
0=消灯
1=点灯
開発環境 Windows11 Pro x64
Arduino IDE 1.8.16
Date 2022-05-08
Program by.Tsurutsuru
*/
void setup()
{
// pinMode(PORTB , OUTPUT); //エラーは出ないけど設定不可
pinMode( 8, OUTPUT); //8番ピンをOUTPUT(出力)に指定(PB0)
pinMode( 9, OUTPUT); //9番ピンをOUTPUT(出力)に指定(PB1)
pinMode(10, OUTPUT); //10番ピンをOUTPUT(出力)に指定(PB2)
pinMode(11, OUTPUT); //11番ピンをOUTPUT(出力)に指定(PB3)
pinMode(12, OUTPUT); //12番ピンをOUTPUT(出力)に指定(PB4)
pinMode(13, OUTPUT); //13番ピンをOUTPUT(出力)に指定(PB5)
pinMode(20, OUTPUT); //20番ピンをOUTPUT(出力)に指定(PB6)
pinMode(21, OUTPUT); //21番ピンをOUTPUT(出力)に指定(PB7)
PORTB=0x00; //PORTBすべて0
}
void loop()
{
byte p=21;
for(i=0;i<=255;i++)
{
PORTB = i;
// digitalWrite( p, HIGH);
// delay(100);
// digitalWrite( p, LOW);
delay(100);
}// for i
}// loop
/*
Arduino 内臓RCクロック8MHz
PORTB 0-7にLEDをつないで
0=消灯
1=点灯
開発環境 Windows11 Pro x64
Arduino IDE 1.8.16
Date 2022-05-08
Program by.Tsurutsuru
*/
void setup()
{
// pinMode(PORTB , OUTPUT); //エラーは出ないけど設定不可
pinMode( 8, OUTPUT); //8番ピンをOUTPUT(出力)に指定(PB0)
pinMode( 9, OUTPUT); //9番ピンをOUTPUT(出力)に指定(PB1)
pinMode(10, OUTPUT); //10番ピンをOUTPUT(出力)に指定(PB2)
pinMode(11, OUTPUT); //11番ピンをOUTPUT(出力)に指定(PB3)
pinMode(12, OUTPUT); //12番ピンをOUTPUT(出力)に指定(PB4)
pinMode(13, OUTPUT); //13番ピンをOUTPUT(出力)に指定(PB5)
pinMode(20, OUTPUT); //20番ピンをOUTPUT(出力)に指定(PB6)
pinMode(21, OUTPUT); //21番ピンをOUTPUT(出力)に指定(PB7)
PORTB=0x00; //PORTBすべて0
}
void loop()
{
byte p=21;
for(i=0;i<=255;i++)
{
PORTB = i;
// digitalWrite( p, HIGH);
// delay(100);
// digitalWrite( p, LOW);
delay(100);
}// for i
}// loop
/*
サンプル2「ナイトライダー風」
Arduino 内臓RCクロック8MHz
PORTB 0-7にLEDをつないで
0=消灯
1=点灯
開発環境 Windows11 Pro x64
Arduino IDE 1.8.16
Date 2022-05-08
Program by.Tsurutsuru
*/
byte led[15]={1,2,4,8,16,32,64,128,128,64,32,16,8,4,1};
void setup()
{
// pinMode(PORTB , OUTPUT); //エラーは出ないけど設定不可
pinMode( 8, OUTPUT); //8番ピンをOUTPUT(出力)に指定(PB0)
pinMode( 9, OUTPUT); //9番ピンをOUTPUT(出力)に指定(PB1)
pinMode(10, OUTPUT); //10番ピンをOUTPUT(出力)に指定(PB2)
pinMode(11, OUTPUT); //11番ピンをOUTPUT(出力)に指定(PB3)
pinMode(12, OUTPUT); // 12番ピンをOUTPUT(出力)に指定(PB4)
pinMode(13, OUTPUT); //13番ピンをOUTPUT(出力)に指定(PB5)
pinMode(20 , OUTPUT); //20番ピンをOUTPUT(出力)に指定(PB6)
pinMode(21 , OUTPUT); //21番ピンをOUTPUT(出力)に指定(PB7)
PORTB=0x00; //PORTBすべて0
}
void loop()
{
for(byte i=0 ; i<=14 ; i++)
{
PORTB = led[i];
delay(100);
}
}// loop
サンプル2「ナイトライダー風」
Arduino 内臓RCクロック8MHz
PORTB 0-7にLEDをつないで
0=消灯
1=点灯
開発環境 Windows11 Pro x64
Arduino IDE 1.8.16
Date 2022-05-08
Program by.Tsurutsuru
*/
byte led[15]={1,2,4,8,16,32,64,128,128,64,32,16,8,4,1};
void setup()
{
// pinMode(PORTB , OUTPUT); //エラーは出ないけど設定不可
pinMode( 8, OUTPUT); //8番ピンをOUTPUT(出力)に指定(PB0)
pinMode( 9, OUTPUT); //9番ピンをOUTPUT(出力)に指定(PB1)
pinMode(10, OUTPUT); //10番ピンをOUTPUT(出力)に指定(PB2)
pinMode(11, OUTPUT); //11番ピンをOUTPUT(出力)に指定(PB3)
pinMode(12, OUTPUT); // 12番ピンをOUTPUT(出力)に指定(PB4)
pinMode(13, OUTPUT); //13番ピンをOUTPUT(出力)に指定(PB5)
pinMode(20 , OUTPUT); //20番ピンをOUTPUT(出力)に指定(PB6)
pinMode(21 , OUTPUT); //21番ピンをOUTPUT(出力)に指定(PB7)
PORTB=0x00; //PORTBすべて0
}
void loop()
{
for(byte i=0 ; i<=14 ; i++)
{
PORTB = led[i];
delay(100);
}
}// loop