TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
電気電子板自治スレ 4
大学でOPアンプ作ることになったwwwwwwww
【会社で】ゴミ捨て場にあったもの【学校で】
【回路図】CAD / EDA 総合【基板】2シートめ
電力会社から電気を買わないで暮らす。
ハンダ作業について語るスレ No12
【な】秋月、千石、若松などを語るスレ90【ど】
【回路図】CAD / EDA 総合【PCB】
アンプを語ろう〜良い音って何だ〜
【復活】プリント基板関する質問はここだ! 1層目

H8


1 :2013/09/29 〜 最終レス :2020/04/29
前スレ
http://uni.2ch.sc/test/read.cgi/denki/1284528838/

2 :
http://japan.renesas.com/h8
http://japan.renesas.com/products/mpumcu/h8/index.jsp
http://jp.wikipedia.org/wiki/H8

3 :
通販はぼくらの味方
http://akizukidenshi.com/catalog/c/ch8

4 :
           >>1
             ↓                _人
      ∩    ∧_∧            ノ⌒ 丿
       \ヽ_(    )         _/   ::(
         \_   ノ        /     :::::::\
 ∩_   _/    /         (     :::::::;;;;;;;)
 L_ `ー / /   /           \_―― ̄ ̄::::::::::\
     ヽ  | |__/ |           ノ ̄     ::::::::::::::::::::::)
  | ̄ ̄ ̄\     ノ こんな     (     ::::::::::::::;;;;;;;;;;;;ノ
  | | ̄「~| ̄( 、 A , )クソスレ   / ̄――――― ̄ ̄::::::::\
  | |  | |  ∨ ̄∨        (        :::::::::::::::::::::::::::::::::)
  し'  し'                \__::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;ノ

                               __
                         >>1  l ̄/.  ___
                         ↓ / /.  / ___ノ
                        __/ /_/ /
      たてんじゃねー!      Y人, ' ',人⌒ヽ、, '
                      Y⌒ヽ)⌒ヽ、 人,ヽ)人'、, '
        へ, --- 、         ノ ̄     ::::::::::::::::::::::)
     / ̄ ̄ ̄  、____\       (     ::::::::::::::;;;;;;;;;;;;ノ
    / _/ ̄「~|\ __ \     / ̄――――― ̄ ̄::::::::\
   | |  | | ( 、 A , \ミソ   (        :::::::::::::::::::::::::::::::::)
   し'   し' と∨ ̄∨       \__::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;ノ

5 :
で、何か話すような話題あんの

6 :
また建てたのか今更だろ
みんなでルネの代替にどのマイコン使うか決めようぜ

7 :
それよりみんなでCOBOLの話しようぜ

8 :
今の新卒はphpできるだけで年収1000万円で採用されるよ
h8なんて使ってる場合じゃないな
みんなでphp使えるようになって年収増やそう

9 :
まじですか
pythonじゃだめですか?
rubyならいくらになりますか?

10 :
なんでこんな過疎スレに次スレを立てるか

11 :
統合したくないんだろう

12 :
旧日立系って会社とかで孤立してんのかって心配に成るなw
教育様で始めて触ったマイコンがh8で重いレアルってのは理解出来る
おいらは8086とミップスだったからなあ

13 :
>>12
自分は応用利かない人間ですよと言ってるも同然だけど、いまどきそんな人材飼ってる会社が
実際にあるんならすげえなあ。

14 :
経営統合された会社に速度なんて在るわけがない。
弱い方の会社人員を全部退職させて、ようやく普通の会社の速度になります。

15 :
ttp://news.mynavi.jp/series/volt/005/index.html
コレ見てから、
秋月3694+秋月テラ基板でニキシー管やってみようと考えてるんだけど、
3694って 100回以上 ROMに書き込みしたらワンタイム状態になっちゃうの?
誰か過剰に書き込みした経験あるヒトいる?

16 :
【Renesas】ルネサス総合 part7
http://uni.2ch.sc/test/read.cgi/denki/1380867942/

17 :
書き込み制限回数を超えたら書き込めなくなるわけじゃなく
データの保持時間が短くなる。
10年持つはずのものが2〜3年で消えてしまうかもしれないってこと。
だからデバッグ用と最終製品用と2つ買っておくのが吉
どうせ趣味だから2〜3年で消えてもいいや、と1つしか買わないのも
本人が割り切ってるならそれもよし。

18 :
何度もフラッシュ書き換えたくないなら、モニタ使えば良いんじゃない?
一度モニタ書き込んだら、ターミナル経由でRAMにプログラム流し込んで実効出来る

19 :
10万回超えですぐ同時に劣化が始まる訳でもなく
徐々に消えやすくなっていくだけだし
趣味と割り切れば消えたらまた書き込めば良いんだし

20 :
おいおい10万回とは何の寿命だ
>>15 は100回以上・・・ っていってるのに

21 :
でもいちいち書き込むの面倒だな
iplでテープ読み込みして起動してたシステムを思い出した
起動するだけで数時間単位www

22 :
なにそのmz-80

23 :
昔のひとは時間余ってたんかな

24 :
クリーンコンピューター

25 :
SP-1002 起動!

26 :
** MONITOR SP-1002 **
*LOAD
↓PLAY
LOADING BASIC SP-5030
* SHARP BASIC SP-5030
34680 BYTES
READY


27 :
昔あった「なつかしのCPUスレ」みたいで良いな

28 :
私はこの本を読んで、まだ日本について良く理解していないと思いました。
これを機会に、良く調べてもっと日本を知りたいです。
このメタンハイドレートは、本当に日本の希望になると思います。
まだメタンハイドレートについて知らない人も多いので、
これから広めていきたいです。
メタンハイドレートについて知る人が増えると良いと思います。
これから日本が良い方向にいってほしいと思います。

29 :
>>28女子中学生ですか?

30 :
何 このスレ?
殿堂入りしたチップで何を話すというの? 真空管や鉱石ラヂヲの序列だよ。

31 :
女子中学生の作文という指摘は当たってます

32 :
>>30
鉱石ラヂヲの話したらいかんの?

33 :
あああ

34 :
>>15
秋月に聞いたら今のロットは1000回書き込み保証とのこと。

35 :
なんかズサーってづっこけそうになるな

36 :
この板も人減ったな

37 :
H8に慣れ過ぎてしまってほかに移れない。PICもAVRもデータシート読んでも
使い方のイメージが湧かない。

38 :
時代の流れに追従出来ず取り残されたスレ

39 :
HSやRXに移行しよう

40 :
HS?

41 :
>>15
書き込み回数は、書き込んでから10年ぐらいデータ保持を保証するものだから、
超えたからといって即座に異常が出るわけじゃない。
書き込み異常が出るほどになるにはウン万回書き込む必要があると思う。
>>39
SH と言いたかったのかな?あんまり SH もすすめられないような気もするけど。

42 :
HCかもFreescaleの68HC〜とか

43 :
freescaleならHCSもあるな

44 :
h8のコードをハードエミュするマイコンがあればw

45 :
元の担当者からの引継ぎもソースコードも失われてるなら必要な場合もあるかもね
> h8のコードをハードエミュするマイコン

46 :
CPUコアだけならどっかでVHDLだかVerilogだかになってたような気もするけど
H8ってCPUコアだけじゃないんだよな。
ITUとかSCIとかの周辺も無いと。
もう俺の頭の中ではそのへんの周辺まで全部ひっくるめたものが「H8」という認識。

47 :
秋月でH8/3694Fのマイコンボード7個買った。
会社で使う。もうこれで最後だと思う。

48 :
>もうこれで最後
会社が?

49 :
>>47
うちも買いだめした。Aマークでもうすぐなくなるからね。

50 :
機能コストで考えるとものすごくハイパフォーマンスなんだよな。

51 :
3069でWAVの再生ってできますか?

52 :
えらい曖昧な質問だな
WAVフォーマット的にも
再生方法的にも

53 :
>>52
曖昧ですみませんでした。
WAVはモノラルのPCMで、PWM出力で実現できるでしょうか?

54 :
専用IC使った方が楽そうですね。

55 :
>>53
PWM? 1ビット再生?

56 :
3069ってD/A付いてるからPWMなんかやらんでもいいのでは

57 :
10 774ワット発電中さん 2013/10/28(月) 07:17:32.25 p+yIU5A
秋月電子社長のインタビュー
http://president.jp/articles/-/10921
この本文中に
|私が仕入れた日立のある部品なんて、1ヶ月に5000個も6000個も売れたので、
|思い切って3万個仕入れたら、1ヶ月に10個しか売れない。
|これは申し訳なかったですね。でもね、それが震災後に昔のICが必要だということで、
|ある業者さんが全部買ってくれたんですよ。
とあるが、もしやH8か

58 :
>>57
イイ記事だw

59 :
ここにもよく似た記事があるな
なんでだろ
http://president.jp/articles/-/10947

60 :
>>59
10921で予告されてた続編

61 :
っ 連載

62 :
復興予算でh8互換の新しいマイコン作れば良かったのにな
秋月に在庫があったばかりに

東日本大震災の復旧・復興について重点的に検査が行われ、このうち昨年度までの2年間に計上された19兆円余りの復興予算について、ことし3月末の時点で基金に支払われた補助金を含め、およそ6兆5000億円が次の年に繰り越されるなどして使われていなかったと指摘

63 :
プログラミングは H8 > R8C > RL78 で楽だが。
回路規模もおそらく H8 > R8C > RL78 だろう。
H8はレジスタも32ビットで汎用性が高い。回路規模も大きいだろうし
配線もかなり多いはず。レジスタが多いのはタスク切り替えでは
不利になるが、H8-300Hにはレジスタバンクもない。
H8のuCLinuxまで動作させられる汎用性は中途半端な性能と高価格を招いている。
組込み用途で負け組になったのはしかたがないだろう。

64 :
組み込みといえども最近は全部ネットに繋がるからフルスペックのリナックスが必要
ちゃんと枯れたbsd tcp stackでもいいけどさ
h8にはmmuが無かったのが致命的
mc68000みたいに外部mmuでもあれば流れは変わっていたかもね

65 :
>>64
なんでもかんでもネットに繋げなくていいだろ

66 :
>>64
そういうのはSHの守備範囲、RZに置き換えられることになったが。
推測だがH8の守備範囲が大きくなったのはH16がだめになったから
なんだろうな。
 ローエンドは安いことが一番、RL78が採用されたのはそのためだろう。
パイプラインがあるので単純に比較できないが、汎用レジスタは 8ビットの
レジスタが8本しかない。回路規模は小さいんだろう。

67 :
>>66
>汎用レジスタは 8ビットの
>レジスタが8本しかない。
32個あるよう

68 :
>>67
前後関係からRL78のことを言っていると分かると思ったが、君のために訂正すると
>汎用レジスタは8ビットの --> RL78の汎用レジスタは8ビットの
RL78はH8よりレジスタ数も少ないので価格が安いと言いたかったのだが。

69 :
>>68
>RL78の汎用レジスタは8ビットの
32個あるよう

70 :
>>69
レジスタバンクのことを言っているのか。
それを汎用レジスタが32個あるとは言わないだろう。
カタログに32個の8ビット汎用レジスタがありますって書いたら詐欺だろう。

71 :
偽装ではありません
誤表記です

72 :
なんだ、レジスタバンクとしてもフラットな32個のレジスタとしても使えるのを知らないのか。

73 :
>>72
知らないが残りの24個のレジスタは"汎用"レジスタとして使えるのか?
単にデータを保持するだけのレジスタを"汎用"レジスタとは呼ばないぞ。

74 :
>>73
>単にデータを保持するだけのレジスタを"汎用"レジスタとは呼ばないぞ。
直値との演算やインクリメント/デクリメントとかできるよ。

75 :
>>74
メモリに対しても出来る程度のこと。つまりメモリでしかない。
そんなのを汎用レジスタとは呼ばない。
つまりレジスタバンクで裏のレジスタをアクセスできるようにしただけ、違うかな。

76 :
>>75
>そんなのを汎用レジスタとは呼ばない。
ソフトウェアマニュアルの表記が “汎用レジスタ” なのだからお前が何言っても意味がない。

77 :
>>76
マニュアル見て調べる気もしないが、32個の汎用レジスタの正体は理解できたようだな。
これで32個の汎用レジスタがありますなんて書いたら詐欺と言われてもしかたがないと
言った理由も理解できたかな。

78 :
>>77
>マニュアル見て調べる気もしないが、32個の汎用レジスタの正体は理解できたようだな。
理解も何も、前から asm でバリバリ書いてるけど、RL78 のプログラムの効率化は汎用レジスタの
使いこなしがキモだよ。

79 :
>>78
それは失礼した。もし自分がそこまでの知識があったなら、汎用レジスタが32個なんて
恥ずかしい発言はできなかっただろうな。ルネサスがどう呼ぼうと汎用レジスタが
どいうものかぐらいは分かっているだろう?

80 :
>>79
お前が “汎用レジスタ” をどのように捉えてるかなんて知るかよ。
RL78 は演算命令は a レジスタに集中してるアーキテクチャだし、mov a,b や mov c,a はできるが
mov c,b はできない程度に直行性の低いアーキテクチャで、H8 の知識を基に “汎用レジスタ” とは
何であるか等語ったところで意味などない。

81 :
>>80
汎用レジスタがどういうものかは別として、レジスタとメモリの区別くらいつくんじゃないの。
繰り返すことになるが、バンクの裏になっているのは単にメモリでしかない。
それくらいは分かっているだろう。
それを分かっていて32個の汎用レジスタがあるという主張ができるのは逆にすごい。
せいぜいRL78の汎用レジスタは32個ありますと啓蒙してくれ。

82 :
>>81
>汎用レジスタがどういうものかは別として、レジスタとメモリの区別くらいつくんじゃないの。
PC 以外のレジスタはメモリに割り付けられてる RL78 で何言ってんの?

83 :
頭の固い老害だからしょうがないよ

84 :
8051(8bitレジスタが32本あるフリの元祖)の5番煎じくらいのアーキで喧嘩しちゃだめ。

85 :
自動生成されるiodefine.h使う?

86 :
ぐぬぬ

87 :
H8マイコン活用記事全集 2013年 12月号 [雑誌]
価格:¥3,990
出版社: CQ出版; 不定版 (2013/11/25)
発売日:2013/11/25
さよならH8思い出編みたいな

88 :
H8は終了でもネタ集としては有用かもしれん。買っとくかな。

89 :
>>87
ちょと高くない値段?

90 :
20年分の記事のDVDとかだったらなぁ

91 :
>>90
10年分の記事のCD-ROMだから気に入らないと?
http://www.cqpub.co.jp/hanbai/books/MSP/MSPZ201312.htm
>  「トランジスタ技術」に2001年1月号から2010年12月号までの10年間に掲載された
> 多数の記事の中から,H8マイコンを集め,PDFファイルでCD-ROMに収録します.

92 :
ルネサスの製品全般について
■マイコン総合
http://japan.renesas.com/prod/mcumpu/
前スレ
【Renesas】ルネサス総合 part7
http://uni.2ch.sc/test/read.cgi/denki/1380867942/

93 :
次スレ
【Renesas】ルネサス総合 part8
http://uni.2ch.sc/test/read.cgi/denki/1391644674/

94 :
次スレ
【Renesas】ルネサス総合 part8
http://uni.2ch.sc/test/read.cgi/denki/1391644674/

95 :
IQ ≒ 偏差値 x 2

96 :
H8はじめました。
BASIC懐かしすぎ

97 :
20文字4行液晶つなげてみた。なにこれ楽しいw

98 :
AKIのH8は板違い?

99 :
>>97
デカイのになると、40桁×8行というのもあるよ。

100 :
過疎り具合がぱねぇっすね
どうしたH8

101 :
>>95
PICや8051が伸びてるのはそれなりに理由がある。
今時、H8なんか使う理由が見当たらないんだが。

102 :
8051は今のARMみたいに、あちこちに使われてた時期がありましたね。
さすがにもう伸びしろはほとんど残っていないというか、ARMに役割を譲りつつあると思いますが。

103 :
>>100
1年前のレスにレスしても
読まれるかどうかわからんしな

104 :
R0参照のtvゲーム用のくろさわ乱数器作ったからもりあがりつつ使え

_main_この木何の木木になる木:
jsr @_kuroini
jsr @_kuro16
jmp @_main_この木何の木木になる木
;
_kuroini:
mov.w #6502,R0
mov.w #h'4b18,R1
mov.w #h'32a9,R2
rts
_kuro16:
xor.w R1,R0
sub.w R2,R0
rotl.w R0
rotl.w R0
rts

105 :
ローテクロジックデバイス下請けさんとして働くH8コード3664F用だからありがたく焼きなさい
(PLD風なソフトロジック実装なため遅い.論理回路の実験用)

;P1=IN,P2=OUTの7400と等価
loop:
mov.b @H'FFD4,R0L ;port1 read
cmp.b #3,R0L ;P0,P1が同時にHのとき3なので比較
bne j1
mov.b #1,R0H ;3のときにP2_0をHにする
jmp @j2
j1:
mov.b #0,R0H ;P1_0,P1_1が双方とも1でないときはP2_0=L
j2:
mov.b R0H,@H'FFD5 ;port2 write
jmp @loop

106 :
74HC04のインバータ(P1=IN,P2=OUT)もソフトPLD実装したのでLEDチカチカしなさい

loop:
mov.b @H'FFD4,R0L
not.b R0L
mov.b R0L,@H'FFD5
jmp @loop

107 :
LED調光ノイズ酷いので3664F用PWMClock拡散コードを作ったのでノイズ抑制しなさい

_pwmnoize:
;PWMノイズ吐き気するほどヤバイので適当なタイミングで呼びノイズ拡散すべし諸氏死
mov.b @H'FF80,R0L ;TMRWstop
bclr #7,R0L
mov.b R0L,@H'FF80

mov.w @H'FF88,R1 ;TGRAToggle
xor.w #3,R1
mov.w R1,@H'FF88

mov.b @H'FF80,R0L ;TMRWstart
bset #7,R0L
mov.b R0L,@H'FF80
rts

108 :
家で不労所得的に稼げる方法など
参考までに、
⇒ 『武藤のムロイエウレ』 というHPで見ることができるらしいです。

グーグル検索⇒『武藤のムロイエウレ』"

3CIA0WWVZN

109 :
ユニークで個性的な確実稼げるガイダンス
暇な人は見てみるといいかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

6M4KJ

110 :
QAF

111 :
IO.PDR8.BYTE(ポート8のデータ・レジスター) の下位4ビットのみを書き換えるにはどうすればいいでしょう。

112 :
読んで
AND F0h とマスクして
OR する

113 :
>>112
unsigned char TEMP;

TEMP = IO.PDR8.BYTE & 0xF0;
IO.PDR8.BYTE = TEMP | (0x0F & WRITE_DATA);

こんな感じですか。C はビット操作が面倒ですね。

114 :
ビットフィールド型とかあったはず

115 :
あるけど、結局取り回しがうざいからバイト操作の式でやってしまうな

116 :
ぼくにはつかいこなせません

117 :
上位4ビットが出力ポートなら、前に書き込んだバイトデータとミックスして書き込む
上位4ビットが入力ポートか外に出ていないなら、バイトをそのまま書き込む

118 :
>>117
今回は他人の書いた関数の修正なので見送りますが、高速化の手法として有益なので覚えておきます。

119 :
.export _delay
;ディレイループ[extern void delay()で定義]
_delay:
push R0 ;レジスタ退避
mov.w #0,R0 ;ループカウンタ定数初期化

_delay_loop:
inc.w #1,R0
cmp.w #10,R0 ;delay回数で比較する

bne _delay_loop
pop R0 ;復帰
rts

120 :
;これは単純なトグルをする。Cより速いかもしれない。
PCR8 .equ H'00FFEB ;I/Oレジスタ定義
PDR8 .equ H'00FFDB ;3694は64K範囲のみ
_gpio1:
push R0
mov.b #0,R0L ;初期化
mov.b #0,R0H
mov.b #B'11,R0L ;ポート出力設定
mov.b R0L,@PCR8
mov.b #B'11,R0L ;データ出力
mov.b R0L,@PDR8

?_gpio_loop: ;ループしてトグルする
mov.b R0L,@PDR8 ;GPIO ON
nop
mov.b R0H,@PDR8 ;GPIO OFF
jmp @?_gpio_loop:8
pop R0
rts

121 :
;一文字だけの16進変換
;extern char itox1(char)
; .export _itox1
_itox1:
and.b #15,R0L ;16進1文字の範囲でマスク
cmp.b #10,R0L ;数値判定
blt ?_itox1_num ;10以下の場合分岐
add.b #7,R0L ;英字の場合の処理

?_itox1_num:
add.b #48,R0L ;文字記号へ変換
rts

122 :
;itoa1;一文字の整数から文字への変換
;extern char itoa1(char)
; .export _itoa1
_itoa1:
cmp.b #9,R0L
bgt ?_itoa1_end ;整数が数値範囲外か判定
add.b #48,R0L
rts

?_itoa1_end:
mov.b #45,R0L ;数値以外は文字"-"で返す
rts

123 :
;ソフトシリアル出力(P80-81,P81は反転,bps速度はディレイで任意設定)
;extern void ser01(char)
; .export _ser01
PCR8 .equ H'00FFEB ;I/Oレジスタ定義
PDR8 .equ H'00FFDB ;3694は64K範囲のみ
_ser01:
push R1 ;作業用退避
mov.b R0L,R0H ;引数R0Lをコピー
mov.w #0,E0
mov.b #1,R0H ;stopbit作成
shll.w R0 ;下位ビットゼロクリアしてstartbit作成

mov.b #B'11,R1L ;ポート出力設定
mov.b R1L,@PCR8
mov.b #B'10,R1L ;データ出力
mov.b R1L,@PDR8

124 :
?_loop:
nop ;delay作成
nop
shlr.w R0 ;1bit取り出してCYへ
bst #0,@PDR8 ;CYからgpioへ通常出力
bist #1,@PDR8 ;反転シリアル出力

cmp #0,R0 ;比較
bne ?_loop ;送信データ空でない時ループ

pop R1 ;復帰
rts

125 :
;TimerAの設定処理をアセンブラで書く ;extern void init_timer_a(void)
; .export _init_timer_a
TMA .equ H'00FFA6 ;TMAタイマー設定
IRR1 .equ H'00FFF6 ;TRR1割り込みフラグ
IENR1 .equ H'00FFF4 ;割り込み設定
_init_timer_a:
mov.b #B'00001000,R1L ;TimerA設定 φw(32khz),psc=1s
mov.b R1L,@TMA
bclr #6,@IRR1 ;TimerA割り込みフラグクリア
bset #6,@IENR1 ;割り込み有効
rts

これで時計用1秒TimerA割り込みが有効となる。割り込み期間中に毎回フラグクリアするため
bclr #6,@IRR1等ハンドラに書くこと。通常はINT_TimerA()内に IRR1.BIT.IRRTA=0 でよい

126 :
;cpuclock速度変更ルーチン3664/3694(TimerA割り込みを動作させておく事)
;extern void _chgclk(void)
; .export _chgclk
IRR1 .equ H'00FFF6 ;TRR1割り込みフラグ
IENR1 .equ H'00FFF4 ;割り込み設定
SYSCR2 .equ H'00FFF1 ;
_chgclk:
jsr @_init_timer_a ;TimerA初期化
mov.b #B'00110100,R1L ;Clock設定 φ=20Mhz/16=1.25Mhz,DTON=1
mov.b R1L,@SYSCR2
bclr #7,@IRR1 ;直接遷移割り込みフラグクリア
bclr #7,@IENR1;直接遷移割り込みbit有効,0=有効/1=無効、(マニュアルは誤記あり)
sleep ;Sleep実行後TimerA割り込みでクロック切替再始動
rts

127 :
H8用クロサワ式乱数生成器32bit版を作ったので書いとく。乱数生成器としては非常に
優秀でアセンブラで書いているので高速なので広帯域のノイズ生成器として最適。
オーディオ用LCフィルタ,RFシグナルテストなど様々なノイズソースとして利用可能。

128 :
;クロサワ式 PN生成器(32bit改良版)H8/3664,3694用
;GPIOのP80に出力。Cからはextern void kuro32(void)で参照
.export _kuro32
_kuro32:
mov.l #65816,ER0 ;初期値設定
mov.l #h'4b18b4e7,ER1
mov.l #h'32a9cd56,ER2
mov.b #B'11,R1L ;ポートP8出力設定
mov.b R1L,@PCR8
mov.b #B'11,R1L ;P8データ出力
mov.b R1L,@PDR8
?_inspire_the_next:
xor.l ER1,ER0
sub.l ER2,ER0
rotl.l ER0
rotl.l ER0
mov.b R0L,R3L ;bit0の抽出
and.b #1,R3L
mov.b R3L,@PDR8 ;GPIO(P80)出力
jsr @_delay ;ディレイ(動作が速すぎるためI/O用遅延)
jmp @?_inspire_the_next

129 :
通信用に必要なパリティ検出は簡単なので関数を書いてみる。
エラー検出用なので送信時にパリティを求めてデータと一緒に送信後、受信側でパリティを
求めて一致するかチェックする。一致しない場合はエラー処理再送などを要求する。
//パリティビットを返す
unsigned char parity(unsigned char i){
return(i & 1);
}
これをアセンブラで書くとこんな感じ
mov.b #123,R0L
and #1,R0L
単純なので関数化してもよい。

130 :
続いてチェックサムを求める関数。引数は配列と要素数の二つ。戻り値は1byteで返す。
エラーチェックとしては古典的で処理も簡単。送信側で求めてフレームに追加して受信側で
データを計算して値が同じか異なるかでチェックする。Sレコードなどのチェックサムでも利用する。
char checksum(char dat[], int len){
int i;
unsigned int sum=0;
for(i=0; i<len; i++){
sum=sum+dat[i];
}
return(sum & 0xff);
}

131 :
最後にCRC8を求める。char配列を渡すと8bitのCRC値(標準CRC8)が求まる。
char crc8_4(char data[],int len){
int i,j,crc;
for(j=0; j<len; j++){
crc=crc^data[j];
for(i=0; i<8; i++){crc=crc & 0x80 ? (crc<<1) ^0x7 : crc<<1;}
}
return(crc&0xff);
}
ここで得られた標準CRC値に0x55をXORするとCRC8/ITU仕様の結果となる。

132 :
配列要素間のswapをアセンブラで書いてみる
.export _swap
;二箇所のbyte配列の中身を入れ替える。引数swap(char[], int a, int b)
;呼び出し側の引数はR0,E0,R1に割り当てられる。配列はスタックフレーム上にある
_swap:
push.l ER2 ;保存
push.l ER3
mov.w R0,R2 ;配列アドレス計算(a,ポインタとしてR2を使用)
add.w E0,R2
mov.w R2,E2 ;aのアドレス保存
mov.b @(R2),R3L ;データをtempとしてR3Lへ保存
mov.w R0,R2 ;配列アドレス計算(b)
add.w R1,R2
mov.w R2,E3 ;bのアドレス保存
mov.b @(R2),R3H ;bの内容を保存
mov.w E2,R2 ;aアドレス設定
mov.b R3H,@(R2) ;b->aへコピー
mov.w E3,R2 ;bアドレス設定
mov.b R3L,@(R2) ;temp->bへコピー
pop.l ER3
pop.l ER2 ;復帰
rts
Cから利用する場合は,extern void swap(char[], int, int);でプロトタイプし
配列と指定インデクス2つを引数に与える

133 :
>>132のswap()を利用して選択ソートを実装する。
extern void swap(char[],int,int);
uchar a[]={9,8,7,6,1,2,3,4};
int i,j,len,min;
len=8;
for(j=0; j<len; j++){
min=j;
for(i=j; i<len; i++){ min=(a[i]<a[min])?i:min; }
swap(a,j,min);
}

134 :
Byte配列の指定インデクスを一つだけ右に移動させる(ビット列のシフトではない)
インデクスは配列のポインタで指定
.export _rightsft
;引数の配列アドレスはR0に入る
;配列の添え字を指定して隣接する配列の一要素のみ一つだけ移動
_rightsft:
push R2 ;保存
mov.b @(-1:16,ER0),R2L ;隣と要素の入れ替え
mov.b R2L,@(ER0)
pop R2 ;復帰
rts

135 :2020/04/29
>>134をCから利用する例。Byte配列の右移動(右ローテート)。配列の他に画像で使うと面白い

extern void rightsft(char[]);

uchar a[]={9,8,7,6,1,2,3,4};
int i,j;
j=a[7];
for(i=7; i; i--){ rightsft(a+i); }
a[0]=j;

スイッチング電源 6台目
電気なしで暮らす
シャープが潰れたらポケコンユーザーはどうなるの?
電子工作入門者・初心者の集うスレ 92
ここだけ2000年ほど進んでいるスレ
3Dプリンター個人向け@電気・電子板 その58
3Dプリンター個人向けその11
電子工作入門者・初心者の集うスレ 89
3Dプリンター個人向け@電気・電子板 その53
【Cortex-】 やっぱARMっしょ 11 【AxRxMx】
--------------------
【マンゴー】宮崎が千葉の糞田舎を完膚なきまで叩きのめします!【ピーナッツ】
別館★羽生結弦&オタオチスレ11787
安倍晋三R
Dota Underlords Part7
水原希子さんあなた、ブサイクですよ!
森山いずみ隊員
聖光>栄光>浅野>サレジオ>逗開>鎌学>桐蔭
悪魔関連ヲチスレpart15
【将棋】藤井聡太七段の勝負めしは「親子丼の冷たいうどんセット(830円)」ジューシーな鶏肉が絶妙の一品 大橋六段は「肉なんばうどん」 [ばーど★]
ウルトラビースト+αの日常&非日常劇録 4FILE目
もりもりぼっくんスレ
【cafe】ドトール de マターリ 103杯目【doutor】
「俺、お笑いわかってますよ」感を出してくる俳優ってウザいよな 誰とは言わんが [593776499]
よこやR!
【スクフェス】ラブライブ!スクールアイドルフェスティバル無課金スレ85
兎草子 2
【楽しく】歌舞伎町でマターリ飲むオフ【1杯目】
名古屋・周辺ラーメン屋193杯目
何歳まで生きるのか?
【配信開始】アニメ史を変えた衝撃の「ルパン三世」ファーストシリーズ。 「ルパン三世 1st series」
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼