そろそろFC2の方のブログに完全に切り替えます。
移転先はこちら。移転先でもよろしくお願いします。
Program's Running!!
プログラマなパパがAVRとUbuntuと部活についてぼちぼち更新していくブログです。 旧「よくわかるAVR・Ubuntu」
2011年9月9日金曜日
2011年9月3日土曜日
移転など
お久しぶりです。パパです。
急ですが、もうすぐブログを移転しようと考えています。
Bloggerが最近使いにくく感じてきたので、というのが主な理由です。
移転先はいろいろ考えた末FC2ブログにしようと思います。
新URLは「http://anipapa01.blog.fc2.com/」です。
まだ工事中なので、もうしばらくこのブログでお付き合いお願いします。
急ですが、もうすぐブログを移転しようと考えています。
Bloggerが最近使いにくく感じてきたので、というのが主な理由です。
移転先はいろいろ考えた末FC2ブログにしようと思います。
新URLは「http://anipapa01.blog.fc2.com/」です。
まだ工事中なので、もうしばらくこのブログでお付き合いお願いします。
2011年8月31日水曜日
2011年8月26日金曜日
ARMの日本語版ユーザーマニュアルみっけ!
ちゃーす。最近調子乗ってるパパです。
調子乗りすぎた(笑)
とりあえず合宿なうな毎日、S-ken頑張ってます。
一通りプログラム書けたんで今度は機械屋さんのお手伝いとかしてます。
閑話休題(←最近これ好きだな)
ARM、LPC1114のマニュアル、日本語版みっけたので報告です。
ここにありました。やったー!
とりあえずロボコン活動しながら隙間時間にARMやろうかなとか。
今日はそんなとこ。でわでわ
調子乗りすぎた(笑)
とりあえず合宿なうな毎日、S-ken頑張ってます。
一通りプログラム書けたんで今度は機械屋さんのお手伝いとかしてます。
閑話休題(←最近これ好きだな)
ARM、LPC1114のマニュアル、日本語版みっけたので報告です。
ここにありました。やったー!
とりあえずロボコン活動しながら隙間時間にARMやろうかなとか。
今日はそんなとこ。でわでわ
2011年8月23日火曜日
AVR assembly
投稿タイトル漢字二文字縛りに疲れて「俺は自由奔放に生きてやるぜー!」とか叫んでるパパです。もうひとつ言うと普段の一人称は「僕」なパパです。こんちは。
最近アセンブリの勉強をはじめまして、ちまちまとやっとるワケです。はい。
あ、そうそう、
アセンブリ:言語の名前
アセンブラ:コンパイルするやつ
アセンブル:コンパイルすること
らしいです。
で、試しに書いてみたそーす。
みたいな感じです。あっ、左の数字は行数です。
ちなみに環境構築はこちら(top)「のぅわべたぁ」様、こちら(top)「AVR使用記-kuman」様を参考にさせて頂きました。
上のソースの回路は、マイコンはATmega64、PINAにはスイッチを負論理で接続、PORTDにはLEDを接続しています。動作としてはPORTAに接続された負論理スイッチが押されたら1bitシフトしてbit反転してLEDに出力するっつーやつです。こんな説明で分かるのかなぁ(爆)
もうちょい真面目に解説すると、
1行目:ATmega64の定義ファイル取り込み
2行目:R16レジスタの名前をunsetに設定。
3行目:R17レジスタの名前をsetに設定。
4行目:R18レジスタの名前をledに設定。
2~4行目はプログラムかじったことのある人なら分かると思いますが、define、つまり設定とか言いつつただの置換です。
5行目:.CSEG
AVRプログラムはこの「.CSEG」の行から始まります。
6行目:ldiという命令で0x00という定数をunsetと設定した(?)レジスタ = R16レジスタに代入。
7行目:同じく0xFFという定数をsetと設定したレジスタ = R17レジスタに代入。
8行目:DDRAレジスタにunsetの中身(=0x00)を代入。
9行目:DDRDレジスタにsetの中身(=0xFF)を代入。
10行目:PORTAレジスタにsetの中身(=0xFF)を代入。
11行目:PORTDレジスタにunsetの中身(=0x00)を代入。
6~11行目でなぜDDRやPORTのレジスタに定数を直接代入しないかというと、「できないから」なんです。
で、6、7行目の代入と8~11行目の代入で別の命令を使っていますが、後述します。
12行目:LOOP:
ここでは「ラベル」を設定しています。C言語のgoto文をご存知なら、分かると思いますが、あれと一緒と考えて大丈夫だと思います。17行目の記述と関係してくるので、詳しくはそっちで。。。
13行目:PINAレジスタの中身をledと設定したレジスタ(=R18レジスタ)に代入。
14行目:lsl命令でledレジスタを1bit左にシフトしたものを求め、ledレジスタに再び代入。
15行目:com命令でledレジスタの1の補数(=bit反転したもの)を求め、ledレジスタに代入。
16行目:PORTDレジスタにledレジスタの中身を代入。
13~16行目がこのプログラムのメインです。ここで「負論理接続のスイッチが押されたら1bitシフトして反転したものを出力」しています。
17行目:jmp LOOP LOOPラベルのある部分(12行目)まで移動してプログラム続行(無限ループ)
ちなみに、手軽にアセンブルできるようにmakeファイル書いたんでついでに載せときます。
こっちの説明はめんどいんで割愛で。
でわでわ
最近アセンブリの勉強をはじめまして、ちまちまとやっとるワケです。はい。
あ、そうそう、
アセンブリ:言語の名前
アセンブラ:コンパイルするやつ
アセンブル:コンパイルすること
らしいです。
で、試しに書いてみたそーす。
そーす
1.include "m64def.inc"
2.def unset = R16
3.def set = R17
4.def led = R18
5.CSEG
6 ldi unset,0x00
7 ldi set,0xFF
8 out DDRA,unset
9 out DDRD,set
10 out PORTA,set
11 out PORTD,unset
12LOOP:
13 in led,PINA
14 lsl led
15 com led
16 out PORTD,led
17 jmp LOOP
18
みたいな感じです。あっ、左の数字は行数です。
ちなみに環境構築はこちら(top)「のぅわべたぁ」様、こちら(top)「AVR使用記-kuman」様を参考にさせて頂きました。
上のソースの回路は、マイコンはATmega64、PINAにはスイッチを負論理で接続、PORTDにはLEDを接続しています。動作としてはPORTAに接続された負論理スイッチが押されたら1bitシフトしてbit反転してLEDに出力するっつーやつです。こんな説明で分かるのかなぁ(爆)
もうちょい真面目に解説すると、
1行目:ATmega64の定義ファイル取り込み
2行目:R16レジスタの名前をunsetに設定。
3行目:R17レジスタの名前をsetに設定。
4行目:R18レジスタの名前をledに設定。
2~4行目はプログラムかじったことのある人なら分かると思いますが、define、つまり設定とか言いつつただの置換です。
5行目:.CSEG
AVRプログラムはこの「.CSEG」の行から始まります。
6行目:ldiという命令で0x00という定数をunsetと設定した(?)レジスタ = R16レジスタに代入。
7行目:同じく0xFFという定数をsetと設定したレジスタ = R17レジスタに代入。
8行目:DDRAレジスタにunsetの中身(=0x00)を代入。
9行目:DDRDレジスタにsetの中身(=0xFF)を代入。
10行目:PORTAレジスタにsetの中身(=0xFF)を代入。
11行目:PORTDレジスタにunsetの中身(=0x00)を代入。
6~11行目でなぜDDRやPORTのレジスタに定数を直接代入しないかというと、「できないから」なんです。
で、6、7行目の代入と8~11行目の代入で別の命令を使っていますが、後述します。
12行目:LOOP:
ここでは「ラベル」を設定しています。C言語のgoto文をご存知なら、分かると思いますが、あれと一緒と考えて大丈夫だと思います。17行目の記述と関係してくるので、詳しくはそっちで。。。
13行目:PINAレジスタの中身をledと設定したレジスタ(=R18レジスタ)に代入。
14行目:lsl命令でledレジスタを1bit左にシフトしたものを求め、ledレジスタに再び代入。
15行目:com命令でledレジスタの1の補数(=bit反転したもの)を求め、ledレジスタに代入。
16行目:PORTDレジスタにledレジスタの中身を代入。
13~16行目がこのプログラムのメインです。ここで「負論理接続のスイッチが押されたら1bitシフトして反転したものを出力」しています。
17行目:jmp LOOP LOOPラベルのある部分(12行目)まで移動してプログラム続行(無限ループ)
ちなみに、手軽にアセンブルできるようにmakeファイル書いたんでついでに載せときます。
こっちの説明はめんどいんで割愛で。
1PROJECT=test
2#--------
3all:
4 avra $(PROJECT).asm
5
6clean:
7 rm $(PROJECT).cof $(PROJECT).eep.hex $(PROJECT).hex $(PROJECT).obj
8
9flash:
10 avrdude -p m64 -c avrispmkII -P usb -e
11 avrdude -p m64 -c avrispmkII -P usb -U flash:w:$(PROJECT).hex -F
12
13.PHONY: all clean
でわでわ
2011年8月21日日曜日
更新
めっちゃお久しぶりです。一ヶ月以上更新忘れてました。。。
最近寝てるはずなのになぜか眠たいパパです。
先週の15日の深夜舞鶴に帰ってきまして、16日からS-kenの夏合宿です。
プログラム修正したり、ボールの捕球について考えたりしながら日々過ごしてます。
そういえばまわりの小中高校ではそろそろ夏休み明けるんですね。
夏休みの宿題の最後の追い込みをしているころでしょうか。
うちの妹・弟も宿題やってるんだろうか。弟は安心だけど、妹(受験生)が心配だなぁ。
閑話休題
そういえば今日はきのくにロボコンらしいですね。
弟が小学生部門に出場します。
がんばれ。
でわでわ
最近寝てるはずなのになぜか眠たいパパです。
先週の15日の深夜舞鶴に帰ってきまして、16日からS-kenの夏合宿です。
プログラム修正したり、ボールの捕球について考えたりしながら日々過ごしてます。
そういえばまわりの小中高校ではそろそろ夏休み明けるんですね。
夏休みの宿題の最後の追い込みをしているころでしょうか。
うちの妹・弟も宿題やってるんだろうか。弟は安心だけど、妹(受験生)が心配だなぁ。
閑話休題
そういえば今日はきのくにロボコンらしいですね。
弟が小学生部門に出場します。
がんばれ。
でわでわ
2011年7月18日月曜日
読了
ちわ。昨日徹夜したパパです。
昨日、「アルミフレームの思考実験」を読み終わりました。
http://www.amazon.co.jp/gp/reader/4286097072/ref=sib_dp_pt#reader-link
ロボコンに参加する高専生の半年間の出来事を書いた小説です。
小説として読むには盛り上がりに欠け、ロボコンものとして読むにはよくあるな、というある意味微妙な小説でした。
-----以下ネタばれ-----
個人的には、読んでいて非常に歯がゆい思いをしました。というか、チームとしてどうなんだ、という描写が非常に多く、各々が「自分の仕事さえできていればそれでよい」という考え方だったので、そりゃチームもばらばらになるでしょ、と。あと、だれか山本先生にはっきりといえよ!とか。
僕もロボコンしてますけど、あれではさすがにダメだと思います。うーん、僕のチームはそうならないように頑張ろう。
でわでわ。
昨日、「アルミフレームの思考実験」を読み終わりました。
http://www.amazon.co.jp/gp/reader/4286097072/ref=sib_dp_pt#reader-link
ロボコンに参加する高専生の半年間の出来事を書いた小説です。
小説として読むには盛り上がりに欠け、ロボコンものとして読むにはよくあるな、というある意味微妙な小説でした。
-----以下ネタばれ-----
個人的には、読んでいて非常に歯がゆい思いをしました。というか、チームとしてどうなんだ、という描写が非常に多く、各々が「自分の仕事さえできていればそれでよい」という考え方だったので、そりゃチームもばらばらになるでしょ、と。あと、だれか山本先生にはっきりといえよ!とか。
僕もロボコンしてますけど、あれではさすがにダメだと思います。うーん、僕のチームはそうならないように頑張ろう。
でわでわ。
登録:
投稿 (Atom)