備忘録/電子工作/マイコン/割込みベクタ
をテンプレートにして作成
/
雅屋内検索 powered by Google
トップ
新規
一覧
単語検索
最終更新
ヘルプ
開始行:
*AVRの割込ベクタアドレス [#gc38c558]
&tag(電子工作,AVR,プログラミング);~
普段はtiny2313を使っている((なんてったって安い))のですが...
今時普通Cで書くでしょうから気付き難い&判ってしまえばアタ...
さて、まずはtiny2313のベクタアドレスをアセンブラで書いた...
.cseg
rjmp reset
rjmp ext_int0
rjmp ext_int1
;以下略
で、初めてmega168を使う時に、以前tiny2313で書いたソースを...
結局、判明した大ボケの原因は、
&256x(32){相対ジャンプと絶対ジャンプの違い};
だったワケなんです。~
mega168はプログラムメモリがデカいので、相対ジャンプでは飛...
だから、割込ベクタは1ワードでなく2ワードになっており、相...
途中で薄々感付いてはいたのですが、じゃあ2ワードにするには...
.cseg
.org $0000
rjmp reset
.org $0002
rjmp ext_int0
.org $0004
rjmp ext_int1
でもなんか納得が行かないモンで、三串のコミュで相談してみ...
&256x(42){何故絶対ジャンプで書かない?};
というお返事・・・そこでやっと相対ジャンプと絶対ジャンプ...
根本の敗因は、
&256x(32){絶対ジャンプの存在忘れてた};
事ですかね。~
いや、命令の存在は知ってたし、違いがなんたるかは分かって...
けど、今までTiny2313で小規模なプログラムばかり組んでいた...
&256x(32){存在意義を考えた事すら無かった};
訳ですよ。~
むしろ今まで参考にしてきたソースは、全て相対ジャンプ使っ...
&256x(42){そういうモンだ};
という程度の認識だったワケですね。~
そして、rjmpとjmpをコンパイルして実際に出てくるコードの違...
「rjmp」だと1ワードなんですが、「jmp」だと2ワード使うんで...
だから本来「jmp」と書くべき場所に「rjmp」を書いてしまうと...
言われてみれば、ああそうか!で済むツマラン事なんですが、...
結局こう書けば済んでた事でした。
.cseg
jmp reset
jmp ext_int0
jmp ext_int1
;以下略
素直にデータシートからコピペしてりゃスンナリ動いてたのに...
**コメント [#pe08c06e]
#commentx
----
#back
終了行:
*AVRの割込ベクタアドレス [#gc38c558]
&tag(電子工作,AVR,プログラミング);~
普段はtiny2313を使っている((なんてったって安い))のですが...
今時普通Cで書くでしょうから気付き難い&判ってしまえばアタ...
さて、まずはtiny2313のベクタアドレスをアセンブラで書いた...
.cseg
rjmp reset
rjmp ext_int0
rjmp ext_int1
;以下略
で、初めてmega168を使う時に、以前tiny2313で書いたソースを...
結局、判明した大ボケの原因は、
&256x(32){相対ジャンプと絶対ジャンプの違い};
だったワケなんです。~
mega168はプログラムメモリがデカいので、相対ジャンプでは飛...
だから、割込ベクタは1ワードでなく2ワードになっており、相...
途中で薄々感付いてはいたのですが、じゃあ2ワードにするには...
.cseg
.org $0000
rjmp reset
.org $0002
rjmp ext_int0
.org $0004
rjmp ext_int1
でもなんか納得が行かないモンで、三串のコミュで相談してみ...
&256x(42){何故絶対ジャンプで書かない?};
というお返事・・・そこでやっと相対ジャンプと絶対ジャンプ...
根本の敗因は、
&256x(32){絶対ジャンプの存在忘れてた};
事ですかね。~
いや、命令の存在は知ってたし、違いがなんたるかは分かって...
けど、今までTiny2313で小規模なプログラムばかり組んでいた...
&256x(32){存在意義を考えた事すら無かった};
訳ですよ。~
むしろ今まで参考にしてきたソースは、全て相対ジャンプ使っ...
&256x(42){そういうモンだ};
という程度の認識だったワケですね。~
そして、rjmpとjmpをコンパイルして実際に出てくるコードの違...
「rjmp」だと1ワードなんですが、「jmp」だと2ワード使うんで...
だから本来「jmp」と書くべき場所に「rjmp」を書いてしまうと...
言われてみれば、ああそうか!で済むツマラン事なんですが、...
結局こう書けば済んでた事でした。
.cseg
jmp reset
jmp ext_int0
jmp ext_int1
;以下略
素直にデータシートからコピペしてりゃスンナリ動いてたのに...
**コメント [#pe08c06e]
#commentx
----
#back
ページ名:
メニュー
トップページ
日記
掲示板
白井内燃機工業
ゲーム
電子工作
雑多
備忘録
フリーソフト
ヤフォーク
リンク
しらいまさや
タグ一覧
注意事項
お問い合わせ
↑
更新情報
最新の10件
2024-03-15
RecentDeleted
2024-03-14
自作工具/パンタジャッキ
2019-04-12
備忘録
2018-12-27
備忘録/バイク・車
2017-04-22
自作工具/簡易プレス
2016-09-16
コー
2016-08-21
バイク/CRM50
2015-08-04
備忘録/雅屋
2015-06-10
コメント/雑多な事/取立日記
2015-04-28
車/S230G/トラブル
↑
掲示板最新20件
掲示板RSS
掲示板RSSfeed配信実験中!
↑
COUNTER
Total:
0
Today:
0
Yesterday:
0
↑
ONLINE
29 Online NOW