AVRマイコンの自分への覚書的な何か part.1 ?
どうも,引き続きやっていきます.ryou.です.
では早速Lチカを目標に頑張ります.
AVRstudio(自分はver5.1を使っています)を起動したら左の「New project」をクリックしてください.
インストールされたテンプレートの「C/C++」から「AVRGCC C Executable Project」をクリックします.
次にデバイス(マイコン)の選択です.
今回は一覧から「ATmega328p」を選択します.
なんか一部書いてあるのでそこにコードを書いていきます.
とりあえずソースコードです.
・・・と思ったのですが長くなると嫌なので続きで.
では早速Lチカを目標に頑張ります.
AVRstudio(自分はver5.1を使っています)を起動したら左の「New project」をクリックしてください.
インストールされたテンプレートの「C/C++」から「AVRGCC C Executable Project」をクリックします.
次にデバイス(マイコン)の選択です.
今回は一覧から「ATmega328p」を選択します.
なんか一部書いてあるのでそこにコードを書いていきます.
とりあえずソースコードです.
・・・と思ったのですが長くなると嫌なので続きで.
続きです.
# define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void){
DDRD = 255 ;
PORTD = 0 ;
while(1){
PORTD = 255 ;
_delay_ms(1000) ;
PORTD = 0 ;
_delay_ms(1000) ;
}
return 0 ;
}
では解説です.
># define F_CPU 80000000UL
コンパイラにマイコンの周波数を8MHzにしてあるとしてdelayを考えさせます.
>#include <avr/io.h>
コンパイラにAVRマイコンの情報を伝えます
io.hの中身は・・・コンパイラで選んだマイコンの情報をコンパイラに伝えるものですかね?
>#include <util/delay.h>
_delay_ms,_delay_usなどを使えるようにするやつです
>DDRD = 255 ;
DDRDとはPORTDの入出力の方向を決めるものです.
0だと入力で1だと出力です.
この場合255は2進数で0b11111111なので全部出力です.
同様にPORTBやPORTCもあるのでDDRBやDDRCも存在します.
PICではTRIS~に当たります
>PORTD = 0 ;
PORTDを初期化します.
0だとlowで1だとHighです.
ちなみに今回は出力のみなので説明を省きますが入力だとまた意味が違います.
>_delay_ms (1000) ;
文字通り1000ms(一秒)待ちます.
特殊な構文はこのぐらいですね.
F7でコンパイルされます.
では書き込みます.
AVRdude-GUIを開いてPICKit2を接続します.
Programmerはpickit2: PICkit 2 {-p usb -i10}を選択です.
「Flash」にできたhexファイル(保存した場所,DocumentsのAVRstudioの中にあるはず)を開きます.
ATmega328PとPICKit2の接続は白い三角形のソケットから
RST (1pin)
VDD (7pin)
GND (8,22pin)
MISO (18pin)
SCK (19pin)
MOSI (17pin)
です.
Readボタンを押したら認識されるはずです.
Writeで書き込みます.
右上のFuseは
Lo E2
Hi D9
Ex 07
だったと思います.
こちらもWriteします.
PORTDのいずれかにLEDをつけて電源(5V)を入れればLEDが1秒間隔で点滅するはずです.
では今回は駆け足でしたがこの辺で.
See you next time.
# define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void){
DDRD = 255 ;
PORTD = 0 ;
while(1){
PORTD = 255 ;
_delay_ms(1000) ;
PORTD = 0 ;
_delay_ms(1000) ;
}
return 0 ;
}
では解説です.
># define F_CPU 80000000UL
コンパイラにマイコンの周波数を8MHzにしてあるとしてdelayを考えさせます.
>#include <avr/io.h>
コンパイラにAVRマイコンの情報を伝えます
io.hの中身は・・・コンパイラで選んだマイコンの情報をコンパイラに伝えるものですかね?
>#include <util/delay.h>
_delay_ms,_delay_usなどを使えるようにするやつです
>DDRD = 255 ;
DDRDとはPORTDの入出力の方向を決めるものです.
0だと入力で1だと出力です.
この場合255は2進数で0b11111111なので全部出力です.
同様にPORTBやPORTCもあるのでDDRBやDDRCも存在します.
PICではTRIS~に当たります
>PORTD = 0 ;
PORTDを初期化します.
0だとlowで1だとHighです.
ちなみに今回は出力のみなので説明を省きますが入力だとまた意味が違います.
>_delay_ms (1000) ;
文字通り1000ms(一秒)待ちます.
特殊な構文はこのぐらいですね.
F7でコンパイルされます.
では書き込みます.
AVRdude-GUIを開いてPICKit2を接続します.
Programmerはpickit2: PICkit 2 {-p usb -i10}を選択です.
「Flash」にできたhexファイル(保存した場所,DocumentsのAVRstudioの中にあるはず)を開きます.
ATmega328PとPICKit2の接続は白い三角形のソケットから
RST (1pin)
VDD (7pin)
GND (8,22pin)
MISO (18pin)
SCK (19pin)
MOSI (17pin)
です.
Readボタンを押したら認識されるはずです.
Writeで書き込みます.
右上のFuseは
Lo E2
Hi D9
Ex 07
だったと思います.
こちらもWriteします.
PORTDのいずれかにLEDをつけて電源(5V)を入れればLEDが1秒間隔で点滅するはずです.
では今回は駆け足でしたがこの辺で.
See you next time.
スポンサーサイト
コメントの投稿
_delay_ms()
の_抜けとる
の_抜けとる
Re: タイトルなし
> _delay_ms()
> の_抜けとる
ホントですね・・・
なんでこいつだけ抜けてるんだか・・・
直します.
> の_抜けとる
ホントですね・・・
なんでこいつだけ抜けてるんだか・・・
直します.