PIC_WAIT
拡張ミッドレンジコアのPICでは、CALLW命令が追加され相対アドレスへのサブルーチンコールが可能となったので、CALLW命令を用いた任意サイクルのWAIT方法を考案してみた。
(2013.11.21 全面改訂)
<考え方の基本>
1. WAITの引数はFレジスタで渡す。(以下の例ではDH,DM,DLを使用)
2. 最小範囲 (~255サイクルまで) のWAITにはCALLW命令を使用する。
3. プログラムメモリを多少使用してでも、できるだけ少ないサイクル遅延で、広範囲かつ任意サイクルのWAITを実現する。
< 255サイクルまでのWAIT>
255サイクルまでのWAITにはCALLW命令を使用する。
メインルーチン中の記述。
・
・
MOVF DL,W
MOVLP 0x05 ← PCLATH=0x05(テーブルの先頭位置により値が変わる)
CALLW
・
・
として、下記テーブルを参照する。
注意点1 WAITの値に関わらず上記構文で6サイクル遅延する。
(PCLATHが予め固定できれば5サイクルの遅延にできる。)
注意点2 DLにはWAIT値の1の補数をセットする。
DL=0x00 の時に最大WAIT 6(MOVF,MOVLP,CALLW,RETURN)+255(NOP)=261サイクル
DL=0xff の時に最小WAIT 6(MOVF,MOVLP,CALLW,RETURN)=6サイクル
テーブルの構成例: 0x500~0x05fe までNOP、0x05ffのみRETURN
ORG 0x0500
;
W255 NOP
W254 NOP
W253 NOP
W252 NOP
W251 NOP
W250 NOP
W249 NOP
W248 NOP
W247 NOP
W246 NOP
W245 NOP
W244 NOP
W243 NOP
・
・
・
W006 NOP
W005 NOP
W004 NOP
W003 NOP
W002 NOP
W001 NOP
W000 RETURN
<256~65280(=255*256)サイクルまでのWAIT>
256~65280サイクルまでのWAITにはサブルーチンを使用する。
メインルーチン中の記述。
・
・
INCFSZ DM,W
CALL W256
・
・
W256 ADDLW 0x01
BTFSC STATUS,Z
GOTO W249 ← RETURN命令はジャンプ先のテーブルの最後に存在。
MOVWF REG0 ← ユーザーがレジスタを定義
CALL W249
INCFSZ REG0,F
GOTO $-2
NOP
GOTO W247 ← RETURN命令はジャンプ先のテーブルの最後に存在。
注意点1 WAITの値に関わらず上記構文で2サイクル遅延する。
注意点2 DMにはWAITの値の1の補数をセットする。
DM=0x00 の時に最大WAIT 255*256+2=65282サイクル
DM=0xff の時に最小WAIT 0*256+2=2サイクル
注意点3 サブルーチン中のラベルW249とW247の位置は先のテーブル中に記してある。
注意点4 サブルーチン中のサブルーチンコールでPCLATHの設定が不要となるようにテーブルは0x800未満に配置しておく。
WAITの計算
1. DM = 0xff のとき、
INCFSZ命令で+1されてW=0となりスキップ。
総サイクルは2(INCFSZ,SKIP)
2. DM = 0xfe のとき、
INCFSZ命令で+1されてW=0xffとなりW256をコール、ここまで3サイクル (INCFSZ,CALL)
W256で+1されてW=0となりW249にジャンプ、
テーブルの最後のRETURNでサブルーチンから復帰。
総サイクルは3+4(ADDLW,BTFSC,GOTO)+249(NOP)+2(RETURN)=258=256+2
3. DM = 0xfd のとき、
INCFSZ命令で+1されてW=0xfeとなりW256をコール、ここまで3サイクル (INCFSZ,CALL)
W256中で+1されてW=0xffとなりGOTO命令をスキップ、ここまで7サイクル 3+3(ADDLW,BTFSC,SKIP)=6
WをREG0に保存し、W249をコールした後、ループを抜けてW247にジャンプ、テーブルの最後のRETURNでサブルーチンから復帰。
総サイクルは6+12(MOVWF,CALL,RETURN,INCFSZ,SKIP,GOTO,RETURN,NOP)+249(NOP)+247(NOP)=514=2*256+2
4. DM < 0xfd のとき、
ループ中のサイクルは、4(CALL,RETURN)+249(NOP)+1(INCFSZ)+2(GOTO)=256
であるからDMが1つ減るごとにWAITは256サイクル加算される。
<65536~16711680(=255*65536)サイクルまでのWAIT>
65536~16711680サイクルまでのWAITにもサブルーチンを使用する。
メインルーチン中の記述。
・
・
INCFSZ DH,W
CALL W65536
・
・
W65536 ADDLW 0x01
BTFSC STATUS,Z
GOTO W65529
MOVWF REG1 ← ユーザーがレジスタを定義
CALL W65529
INCFSZ REG1,F
GOTO $-2
NOP ;[1]
W65529 MOVLW 0x01 ;[1]
CALL W256 ;[65281]=2+254x256+255=255x256+1
GOTO W245 ;[249]=2+245+2
1. DH = 0xfe のとき、
INCFSZ命令で+1されてW=0xffとなりW65536をコール、ここまで3サイクル (INCFSZ,CALL)
W65536で+1されてW=0となりW65528にジャンプ、
テーブルの最後のRETURNでサブルーチンから復帰。
総サイクルは3+4(ADDLW,BTFSC,GOTO)+65529+2(RETURN)=65538=65536+2
2. DH = 0xfd のとき、
INCFSZ命令で+1されてW=0xfeとなりWDHをコール、ここまで3サイクル (INCFSZ,CALL)
W65536中で+1されてW=0xffとなりGOTO命令をスキップ、ここまで6サイクル 3+3(ADDLW,BTFSC,SKIP)=6
WをREG1に保存し、W65529をコールした後ループを抜ける。
ここまで65543サイクル 6+8(MOVWF,CALL,RETURN,INCFSZ,SKIP,NOP)+65529=65543
最後にW244にジャンプ、テーブルの最後のRETURNでサブルーチンから復帰。
総サイクルは65543+65529+2(RETURN)=131074=2*65536+2
4. DH < 0xfd のとき、
ループ中のサイクルは、4(CALL,RETURN)+65529+1(INCFSZ)+2(GOTO)=65536
であるからDHが1つ減るごとにWAITは65536サイクル加算される。
<使用例1>
10から16777215(=256*256*256-1)までの任意のサイクルのWAITを作る。
[前提条件]
WAITのサイクル数はDH,DM,DLの3つのレジスタに格納されている。(1の補数ではない)
DH,DM,DLは上書きされてもかまわない。
1. DH,DM,DLの値を補正した後、1の補数を作る
WAIT処理に関わる遅延サイクル (6+2+2=10 サイクル) を補正
・
・
MOVLW 0x0A ← 10 (補正値)
SUBWF DL,F
CLRW
SUBWFB DM,F
SUBWFB DH,F
COMF DL,F ← DL=/DL
COMF DM,F ← DM=/DM
COMF DH,F ← DH=/DH
2. ウェイトの実施
・
・
MOVF DL,W
MOVLP 0x05
CALLW
INCFSZ DM,W
CALL W256
INCFSZ DH,W
CALL W65536
<使用例2>
8から65535(=256*256-1)までの任意のサイクルのWAITを作る。
[前提条件]
WAITのサイクル数はDM,DLの2つのレジスタに格納されている。(1の補数ではない)
DM,DLは上書きされてもかまわない。
1. DM,DLの値を補正した後、1の補数を作る
WAIT処理に関わる遅延サイクル (6+2=8 サイクル) を補正
・
・
MOVLW 0x08 ← 8 (補正値)
SUBWF DL,F
CLRW
SUBWFB DM,F
COMF DL,F ← DL=/DL
COMF DM,F ← DM=/DM
2. ウェイトの実施
・
・
MOVF DL,W
MOVLP 0x05
CALLW
INCFSZ DM,W
CALL W256
<使用例3>
6から255までの任意のサイクルのWAITを作る
[前提条件]
WAITのサイクル数はDLレジスタに格納されている。(1の補数ではない)
DLは上書きされてもかまわない。
1. DLの値を補正した後、1の補数を作る
WAIT処理に関わる遅延サイクル (6 サイクル) を補正
・
・
MOVLW 0x06 ← 6 (補正値)
SUBWF DL,F
COMF DL,F ← DL=/DL
2. ウェイトの実施
・
・
MOVF DL,W
MOVLP 0x05
CALLW
<使用例4>
9から16777216(=256*256*256)サイクルまでの任意の幅のワンショットパルスを作る
[前提条件]
WAITのサイクル数はDH,DM,DLの3つのレジスタに格納されている。(1の補数ではない)
DH,DM,DLは上書きされてもかまわない。
PORTAの0ビットが事前に出力ポートとして設定されている。
1. DH,DM,DLの値を補正した後、1の補数を作る
WAIT処理に関わる遅延サイクル (4+2+2= 8サイクル) を補正
・
・
MOVLW 0x08 ← 8 (補正値)
SUBWF DL,F
CLRW
SUBWFB DM,F
SUBWFB DH,F
COMF DL,F ← DL=/DL
COMF DM,F ← DM=/DM
COMF DH,F ← DH=/DH
2. パルスの生成
・
・
BCF PORTA,0 ← PORTA,0をLowレベルにしておく
・
・
MOVLP 0x05 ← ポート変化の前に設定、遅延-1
MOVF DL,W ← ポート変化の前に設定、遅延-1
BSF PORTA,0 ← PORTA,0をHigh レベルにする
CALLW
INCFSZ DM,W
CALL W256
INCFSZ DH,W
CALL W65536
BCF PORTA,0 ← PORTA,0をLowレベルにする
注意点 WAITの最小サイクルは8であるが、ポート出力変化が1サイクルあるため、パルス幅の最小サイクルは9となる。最大サイクルも1増える。
<使用例5>
6から33554432(=2*256*256*256)サイクルまでの任意の周期の発振器。
[前提条件]
WAITのサイクル数はDH,DM,DLの3つのレジスタに格納されている。(1の補数ではない)
DH,DM,DLは上書きされてもかまわない。 (DH ・DM ・DL > 0x000002)
PORTAの0ビットが事前に出力ポートとして設定されている。
MOVF DM,W
IORWF DH,W
BTFSS STATUS,Z
GOTO OCH
MOVF DL,W
SUBLW 0x0B
BTFSS STATUS,C
GOTO OCH
BRW
GOTO OLPL
GOTO OLPL
GOTO OLPL
GOTO OLPL
GOTO OLPL
GOTO OLPL
GOTO OLPL
GOTO OLP4
;
OLP3 INCF PORTA,F
GOTO $-1
;
OLP4 INCF PORTA,F
NOP
GOTO $-2
;
OLPL INCF PORTA,F
BRW
NOP
NOP
NOP
NOP
NOP
NOP
GOTO $-8
;
OCH MOVLW 0x0C
SUBWF DL,F
CLRW
SUBWFB DM,F
SUBWFB DH,F
COMF DL,F
COMF DM,F
COMF DH,F
MOVLP 0x05
OLPH INCF PORTA,F
MOVF DL,W
CALLW
INCFSZ DM,W
CALL W256
INCFSZ DH,W
CALL W65536
GOTO $-7
(2013.11.21 全面改訂)
<考え方の基本>
1. WAITの引数はFレジスタで渡す。(以下の例ではDH,DM,DLを使用)
2. 最小範囲 (~255サイクルまで) のWAITにはCALLW命令を使用する。
3. プログラムメモリを多少使用してでも、できるだけ少ないサイクル遅延で、広範囲かつ任意サイクルのWAITを実現する。
< 255サイクルまでのWAIT>
255サイクルまでのWAITにはCALLW命令を使用する。
メインルーチン中の記述。
・
・
MOVF DL,W
MOVLP 0x05 ← PCLATH=0x05(テーブルの先頭位置により値が変わる)
CALLW
・
・
として、下記テーブルを参照する。
注意点1 WAITの値に関わらず上記構文で6サイクル遅延する。
(PCLATHが予め固定できれば5サイクルの遅延にできる。)
注意点2 DLにはWAIT値の1の補数をセットする。
DL=0x00 の時に最大WAIT 6(MOVF,MOVLP,CALLW,RETURN)+255(NOP)=261サイクル
DL=0xff の時に最小WAIT 6(MOVF,MOVLP,CALLW,RETURN)=6サイクル
テーブルの構成例: 0x500~0x05fe までNOP、0x05ffのみRETURN
ORG 0x0500
;
W255 NOP
W254 NOP
W253 NOP
W252 NOP
W251 NOP
W250 NOP
W249 NOP
W248 NOP
W247 NOP
W246 NOP
W245 NOP
W244 NOP
W243 NOP
・
・
・
W006 NOP
W005 NOP
W004 NOP
W003 NOP
W002 NOP
W001 NOP
W000 RETURN
<256~65280(=255*256)サイクルまでのWAIT>
256~65280サイクルまでのWAITにはサブルーチンを使用する。
メインルーチン中の記述。
・
・
INCFSZ DM,W
CALL W256
・
・
W256 ADDLW 0x01
BTFSC STATUS,Z
GOTO W249 ← RETURN命令はジャンプ先のテーブルの最後に存在。
MOVWF REG0 ← ユーザーがレジスタを定義
CALL W249
INCFSZ REG0,F
GOTO $-2
NOP
GOTO W247 ← RETURN命令はジャンプ先のテーブルの最後に存在。
注意点1 WAITの値に関わらず上記構文で2サイクル遅延する。
注意点2 DMにはWAITの値の1の補数をセットする。
DM=0x00 の時に最大WAIT 255*256+2=65282サイクル
DM=0xff の時に最小WAIT 0*256+2=2サイクル
注意点3 サブルーチン中のラベルW249とW247の位置は先のテーブル中に記してある。
注意点4 サブルーチン中のサブルーチンコールでPCLATHの設定が不要となるようにテーブルは0x800未満に配置しておく。
WAITの計算
1. DM = 0xff のとき、
INCFSZ命令で+1されてW=0となりスキップ。
総サイクルは2(INCFSZ,SKIP)
2. DM = 0xfe のとき、
INCFSZ命令で+1されてW=0xffとなりW256をコール、ここまで3サイクル (INCFSZ,CALL)
W256で+1されてW=0となりW249にジャンプ、
テーブルの最後のRETURNでサブルーチンから復帰。
総サイクルは3+4(ADDLW,BTFSC,GOTO)+249(NOP)+2(RETURN)=258=256+2
3. DM = 0xfd のとき、
INCFSZ命令で+1されてW=0xfeとなりW256をコール、ここまで3サイクル (INCFSZ,CALL)
W256中で+1されてW=0xffとなりGOTO命令をスキップ、ここまで7サイクル 3+3(ADDLW,BTFSC,SKIP)=6
WをREG0に保存し、W249をコールした後、ループを抜けてW247にジャンプ、テーブルの最後のRETURNでサブルーチンから復帰。
総サイクルは6+12(MOVWF,CALL,RETURN,INCFSZ,SKIP,GOTO,RETURN,NOP)+249(NOP)+247(NOP)=514=2*256+2
4. DM < 0xfd のとき、
ループ中のサイクルは、4(CALL,RETURN)+249(NOP)+1(INCFSZ)+2(GOTO)=256
であるからDMが1つ減るごとにWAITは256サイクル加算される。
<65536~16711680(=255*65536)サイクルまでのWAIT>
65536~16711680サイクルまでのWAITにもサブルーチンを使用する。
メインルーチン中の記述。
・
・
INCFSZ DH,W
CALL W65536
・
・
W65536 ADDLW 0x01
BTFSC STATUS,Z
GOTO W65529
MOVWF REG1 ← ユーザーがレジスタを定義
CALL W65529
INCFSZ REG1,F
GOTO $-2
NOP ;[1]
W65529 MOVLW 0x01 ;[1]
CALL W256 ;[65281]=2+254x256+255=255x256+1
GOTO W245 ;[249]=2+245+2
1. DH = 0xfe のとき、
INCFSZ命令で+1されてW=0xffとなりW65536をコール、ここまで3サイクル (INCFSZ,CALL)
W65536で+1されてW=0となりW65528にジャンプ、
テーブルの最後のRETURNでサブルーチンから復帰。
総サイクルは3+4(ADDLW,BTFSC,GOTO)+65529+2(RETURN)=65538=65536+2
2. DH = 0xfd のとき、
INCFSZ命令で+1されてW=0xfeとなりWDHをコール、ここまで3サイクル (INCFSZ,CALL)
W65536中で+1されてW=0xffとなりGOTO命令をスキップ、ここまで6サイクル 3+3(ADDLW,BTFSC,SKIP)=6
WをREG1に保存し、W65529をコールした後ループを抜ける。
ここまで65543サイクル 6+8(MOVWF,CALL,RETURN,INCFSZ,SKIP,NOP)+65529=65543
最後にW244にジャンプ、テーブルの最後のRETURNでサブルーチンから復帰。
総サイクルは65543+65529+2(RETURN)=131074=2*65536+2
4. DH < 0xfd のとき、
ループ中のサイクルは、4(CALL,RETURN)+65529+1(INCFSZ)+2(GOTO)=65536
であるからDHが1つ減るごとにWAITは65536サイクル加算される。
<使用例1>
10から16777215(=256*256*256-1)までの任意のサイクルのWAITを作る。
[前提条件]
WAITのサイクル数はDH,DM,DLの3つのレジスタに格納されている。(1の補数ではない)
DH,DM,DLは上書きされてもかまわない。
1. DH,DM,DLの値を補正した後、1の補数を作る
WAIT処理に関わる遅延サイクル (6+2+2=10 サイクル) を補正
・
・
MOVLW 0x0A ← 10 (補正値)
SUBWF DL,F
CLRW
SUBWFB DM,F
SUBWFB DH,F
COMF DL,F ← DL=/DL
COMF DM,F ← DM=/DM
COMF DH,F ← DH=/DH
2. ウェイトの実施
・
・
MOVF DL,W
MOVLP 0x05
CALLW
INCFSZ DM,W
CALL W256
INCFSZ DH,W
CALL W65536
<使用例2>
8から65535(=256*256-1)までの任意のサイクルのWAITを作る。
[前提条件]
WAITのサイクル数はDM,DLの2つのレジスタに格納されている。(1の補数ではない)
DM,DLは上書きされてもかまわない。
1. DM,DLの値を補正した後、1の補数を作る
WAIT処理に関わる遅延サイクル (6+2=8 サイクル) を補正
・
・
MOVLW 0x08 ← 8 (補正値)
SUBWF DL,F
CLRW
SUBWFB DM,F
COMF DL,F ← DL=/DL
COMF DM,F ← DM=/DM
2. ウェイトの実施
・
・
MOVF DL,W
MOVLP 0x05
CALLW
INCFSZ DM,W
CALL W256
<使用例3>
6から255までの任意のサイクルのWAITを作る
[前提条件]
WAITのサイクル数はDLレジスタに格納されている。(1の補数ではない)
DLは上書きされてもかまわない。
1. DLの値を補正した後、1の補数を作る
WAIT処理に関わる遅延サイクル (6 サイクル) を補正
・
・
MOVLW 0x06 ← 6 (補正値)
SUBWF DL,F
COMF DL,F ← DL=/DL
2. ウェイトの実施
・
・
MOVF DL,W
MOVLP 0x05
CALLW
<使用例4>
9から16777216(=256*256*256)サイクルまでの任意の幅のワンショットパルスを作る
[前提条件]
WAITのサイクル数はDH,DM,DLの3つのレジスタに格納されている。(1の補数ではない)
DH,DM,DLは上書きされてもかまわない。
PORTAの0ビットが事前に出力ポートとして設定されている。
1. DH,DM,DLの値を補正した後、1の補数を作る
WAIT処理に関わる遅延サイクル (4+2+2= 8サイクル) を補正
・
・
MOVLW 0x08 ← 8 (補正値)
SUBWF DL,F
CLRW
SUBWFB DM,F
SUBWFB DH,F
COMF DL,F ← DL=/DL
COMF DM,F ← DM=/DM
COMF DH,F ← DH=/DH
2. パルスの生成
・
・
BCF PORTA,0 ← PORTA,0をLowレベルにしておく
・
・
MOVLP 0x05 ← ポート変化の前に設定、遅延-1
MOVF DL,W ← ポート変化の前に設定、遅延-1
BSF PORTA,0 ← PORTA,0をHigh レベルにする
CALLW
INCFSZ DM,W
CALL W256
INCFSZ DH,W
CALL W65536
BCF PORTA,0 ← PORTA,0をLowレベルにする
注意点 WAITの最小サイクルは8であるが、ポート出力変化が1サイクルあるため、パルス幅の最小サイクルは9となる。最大サイクルも1増える。
<使用例5>
6から33554432(=2*256*256*256)サイクルまでの任意の周期の発振器。
[前提条件]
WAITのサイクル数はDH,DM,DLの3つのレジスタに格納されている。(1の補数ではない)
DH,DM,DLは上書きされてもかまわない。 (DH ・DM ・DL > 0x000002)
PORTAの0ビットが事前に出力ポートとして設定されている。
MOVF DM,W
IORWF DH,W
BTFSS STATUS,Z
GOTO OCH
MOVF DL,W
SUBLW 0x0B
BTFSS STATUS,C
GOTO OCH
BRW
GOTO OLPL
GOTO OLPL
GOTO OLPL
GOTO OLPL
GOTO OLPL
GOTO OLPL
GOTO OLPL
GOTO OLP4
;
OLP3 INCF PORTA,F
GOTO $-1
;
OLP4 INCF PORTA,F
NOP
GOTO $-2
;
OLPL INCF PORTA,F
BRW
NOP
NOP
NOP
NOP
NOP
NOP
GOTO $-8
;
OCH MOVLW 0x0C
SUBWF DL,F
CLRW
SUBWFB DM,F
SUBWFB DH,F
COMF DL,F
COMF DM,F
COMF DH,F
MOVLP 0x05
OLPH INCF PORTA,F
MOVF DL,W
CALLW
INCFSZ DM,W
CALL W256
INCFSZ DH,W
CALL W65536
GOTO $-7
- ご質問などはこちらからどうぞ
- ページ更新情報
- 最近嬉しかったこと
- 1kワードのTINYBASIC STM32L010F4
- やってくれたな!!店長よ
- 東大版TINYBASIC (STM32)
- 1kワードのTINYBASIC STM32版 その2
- 1kワードのTINYBASIC STM32版 その1
- 1kワードのTINYBASIC その8
- 1kワードのTINYBASIC その7
- 1kワードのTINYBASIC その6
- 1kワードのTINYBASIC その5
- 1kワードのTINYBASIC その4
- 1kワードのTINYBASIC その3
- 1kワードのTINYBASIC その2
- 1kワードのTINYBASIC その1
- 電大版TINYBASIC for PIC ミニマムお試し版5
- 電大版TINYBASIC for PIC ミニマムお試し版4
- 電大版TINYBASIC for PIC ミニマムお試し版3
- 電大版TINYBASIC for PIC ミニマムお試し版2
- 電大版TINYBASIC for PIC ミニマムお試し版
- PICで電大版TINYBASIC 実装編その5
- PICで電大版TINYBASIC 実装編その4
- PICで電大版TINYBASIC 実装編その3
- PICで電大版TINYBASIC 実装編その2
- PICで電大版TINYBASIC 実装編その1
- PICで電大版TINYBASIC 準備編その2
- PICで電大版TINYBASIC 準備編その1
- PIC18F24K42をPICKIT2で焼くTIPS その2
- PIC18F24K42をPICKIT2で焼くTIPS
- PIC16F18313ブートローダー書き込み器の製作
- PIC16F18857をPICKIT2で焼くその2
- PIC16F18857をPICKIT2で焼く
- PIC16F18313をPICKIT2で焼くその2
- PIC16F18313をPICKIT2で焼く
- PIC16F5XX USBIO
- HVT-BT200の予約制御
- 再考 PIC16F57 USBIO
- PIC16F5X USBIO
- 続12 8ピンPICでUSB PIC16F18313 HID-シリアルアダプター
- ucontrol.com.arに接続できない
- 続続 LPC1114 USBブートローダー
- 続PIC10F200 電子サイコロ
- PIC10F200 電子サイコロ
- LPC1114 8ch簡易ロジックアナライザー USB版
- 続 LPC1114 USBブートローダー
- LPC1114 8ch簡易ロジックアナライザー
- LPC1114 USBブートローダー
- LPC1114でUSB
- 続LPC810でUSB
- LPC810でUSB
- USB_NCO
- USB出力の周波数カウンター
- HIDアダプターについてのまとめ その2
- HIDアダプターについてのまとめ
- 極小ブートローダー まとめ
- 極小ブートローダー ATTiny 其の2
- 極小ブートローダー PIC10F322 其の6
- 極小ブートローダー PIC10F322 其の5
- 極小ブートローダー PIC10F322 其の4
- 極小ブートローダー PIC10F322 其の3
- 極小ブートローダー ATTiny13A
- 極小ブートローダー PIC10F322 其の2
- 極小ブートローダー PIC10F322
- 続11 8ピンPICでUSB PIC16F57_USBIO (その3)
- 続10 8ピンPICでUSB PIC16F505_USBIO (その2)
- 続9 8ピンPICでUSB PIC16F57_USBIO (その2)
- 続8 8ピンPICでUSB PIC16F505_USBIO
- 続7 8ピンPICでUSB PIC16F57_USBIO
- 続6 8ピンPICでUSB PIC16F570_USBIO
- 続5 8ピンPICでUSB PIC12F615_USBIO
- 続4 8ピンPICでUSB 16FUSBの改良版
- 続続続8ピンPICでUSB -30MHz+ソフトシリアル-
- 続続8ピンPICでUSB -16FUSBを30MHzで動かす-
- 続8ピンPICでUSB -ターミナルソフトからの操作-
- 8ピンPICでUSB -16FUSBの移植-
- 番外 MSP430 タイニーブートローダー
- 番外 C8051 タイニーブートローダー
- 続続続 Tiny AVR/PIC Bootloader+
- 続続 Tiny AVR/PIC Bootloader+
- 続 Tiny AVR/PIC Bootloader+
- Tiny AVR/PIC Bootloader+
- 番外 続ATTINY13A OSCCAL の簡易校正
- 番外 ATTINY13A OSCCAL の簡易校正
- 番外 続ATTINY13A ソフトシリアル
- 番外 ATTINY13A ソフトシリアル
- 番外 続Arduinoからタイニーブートローダーを使用する
- 番外 Arduinoからタイニーブートローダーを使用する
- 番外 LPC1114FN28/102 アセンブラサンプル
- 番外 LPC810 タイニーブートローダーの自己書き換え
- 番外 LPC810 EEPROM エミュレーション
- 番外 LPC810 タイニーブートローダー
- 番外 LPC810でアセンブラ
- 続続続PIC10F322 ソフトシリアル一考察
- 続続PIC10F322 ソフトシリアル一考察
- 続PIC10F322 ソフトシリアル一考察
- PIC10F322 ソフトシリアル一考察
- 84ワードのPICブートローダー
- 続PIC10F322 Ring-DDS
- Tinybldの自己更新プログラム
- プログラム領域をROMのように使う
- PIC10F322 256ビットプログラム発振器
- PIC18F EEPROM エミュレーション Jタイプ
- PIC18F EEPROM エミュレーション
- PIC16F EEPROM エミュレーション
- PIC10F322専用 周波数カウンター
- PIC18F Jタイプ ブートローダー
- PICの制約を取り除く
- 番外 ATTINY2313A用ブートローダー
- 続番外 ATTINY13A用ブートローダー
- 番外 ATTINY13A用ブートローダー
- 続PIC10F322 フラッシュメモリの操作
- PIC10F322 フラッシュメモリの操作
- PIC10F322 PIC_WAIT
- ビット列の並び替え その2
- ビット列の並び替え その1
- 故障した温水便座を使えるようにする
- PIC10F322 RA3を出力ポートとして使用
- PIC10F322 周波数カウンタ Part2
- PIC10F322 AN592準拠 周波数カウンタ
- PIC10F322 Ring-DDS
- microchipのAN592に関する一考察
- PIC10F322 3-ch リモコンライン切り替え器
- PIC10F322 4-SW リモコン送信器
- PIC10F322 二相発振器
- PIC_DELAY
- 続PIC_WAIT
- PIC_WAIT
- ご質問などはこちらからどうぞ
- ページ更新情報
- 最近嬉しかったこと
- 1kワードのTINYBASIC STM32L010F4
- やってくれたな!!店長よ
- 東大版TINYBASIC (STM32)
- 1kワードのTINYBASIC STM32版 その2
- 1kワードのTINYBASIC STM32版 その1
- 1kワードのTINYBASIC その8
- 1kワードのTINYBASIC その7
- 1kワードのTINYBASIC その6
- 1kワードのTINYBASIC その5
- 1kワードのTINYBASIC その4
- 1kワードのTINYBASIC その3
- 1kワードのTINYBASIC その2
- 1kワードのTINYBASIC その1
- 電大版TINYBASIC for PIC ミニマムお試し版5
- 電大版TINYBASIC for PIC ミニマムお試し版4
- 電大版TINYBASIC for PIC ミニマムお試し版3
- 電大版TINYBASIC for PIC ミニマムお試し版2
- 電大版TINYBASIC for PIC ミニマムお試し版
- PICで電大版TINYBASIC 実装編その5
- PICで電大版TINYBASIC 実装編その4
- PICで電大版TINYBASIC 実装編その3
- PICで電大版TINYBASIC 実装編その2
- PICで電大版TINYBASIC 実装編その1
- PICで電大版TINYBASIC 準備編その2
- PICで電大版TINYBASIC 準備編その1
- PIC18F24K42をPICKIT2で焼くTIPS その2
- PIC18F24K42をPICKIT2で焼くTIPS
- PIC16F18313ブートローダー書き込み器の製作
- PIC16F18857をPICKIT2で焼くその2
- PIC16F18857をPICKIT2で焼く
- PIC16F18313をPICKIT2で焼くその2
- PIC16F18313をPICKIT2で焼く
- PIC16F5XX USBIO
- HVT-BT200の予約制御
- 再考 PIC16F57 USBIO
- PIC16F5X USBIO
- 続12 8ピンPICでUSB PIC16F18313 HID-シリアルアダプター
- ucontrol.com.arに接続できない
- 続続 LPC1114 USBブートローダー
- 続PIC10F200 電子サイコロ
- PIC10F200 電子サイコロ
- LPC1114 8ch簡易ロジックアナライザー USB版
- 続 LPC1114 USBブートローダー
- LPC1114 8ch簡易ロジックアナライザー
- LPC1114 USBブートローダー
- LPC1114でUSB
- 続LPC810でUSB
- LPC810でUSB
- USB_NCO
- USB出力の周波数カウンター
- HIDアダプターについてのまとめ その2
- HIDアダプターについてのまとめ
- 極小ブートローダー まとめ
- 極小ブートローダー ATTiny 其の2
- 極小ブートローダー PIC10F322 其の6
- 極小ブートローダー PIC10F322 其の5
- 極小ブートローダー PIC10F322 其の4
- 極小ブートローダー PIC10F322 其の3
- 極小ブートローダー ATTiny13A
- 極小ブートローダー PIC10F322 其の2
- 極小ブートローダー PIC10F322
- 続11 8ピンPICでUSB PIC16F57_USBIO (その3)
- 続10 8ピンPICでUSB PIC16F505_USBIO (その2)
- 続9 8ピンPICでUSB PIC16F57_USBIO (その2)
- 続8 8ピンPICでUSB PIC16F505_USBIO
- 続7 8ピンPICでUSB PIC16F57_USBIO
- 続6 8ピンPICでUSB PIC16F570_USBIO
- 続5 8ピンPICでUSB PIC12F615_USBIO
- 続4 8ピンPICでUSB 16FUSBの改良版
- 続続続8ピンPICでUSB -30MHz+ソフトシリアル-
- 続続8ピンPICでUSB -16FUSBを30MHzで動かす-
- 続8ピンPICでUSB -ターミナルソフトからの操作-
- 8ピンPICでUSB -16FUSBの移植-
- 番外 MSP430 タイニーブートローダー
- 番外 C8051 タイニーブートローダー
- 続続続 Tiny AVR/PIC Bootloader+
- 続続 Tiny AVR/PIC Bootloader+
- 続 Tiny AVR/PIC Bootloader+
- Tiny AVR/PIC Bootloader+
- 番外 続ATTINY13A OSCCAL の簡易校正
- 番外 ATTINY13A OSCCAL の簡易校正
- 番外 続ATTINY13A ソフトシリアル
- 番外 ATTINY13A ソフトシリアル
- 番外 続Arduinoからタイニーブートローダーを使用する
- 番外 Arduinoからタイニーブートローダーを使用する
- 番外 LPC1114FN28/102 アセンブラサンプル
- 番外 LPC810 タイニーブートローダーの自己書き換え
- 番外 LPC810 EEPROM エミュレーション
- 番外 LPC810 タイニーブートローダー
- 番外 LPC810でアセンブラ
- 続続続PIC10F322 ソフトシリアル一考察
- 続続PIC10F322 ソフトシリアル一考察
- 続PIC10F322 ソフトシリアル一考察
- PIC10F322 ソフトシリアル一考察
- 84ワードのPICブートローダー
- 続PIC10F322 Ring-DDS
- Tinybldの自己更新プログラム
- プログラム領域をROMのように使う
- PIC10F322 256ビットプログラム発振器
- PIC18F EEPROM エミュレーション Jタイプ
- PIC18F EEPROM エミュレーション
- PIC16F EEPROM エミュレーション
- PIC10F322専用 周波数カウンター
- PIC18F Jタイプ ブートローダー
- PICの制約を取り除く
- 番外 ATTINY2313A用ブートローダー
- 続番外 ATTINY13A用ブートローダー
- 番外 ATTINY13A用ブートローダー
- 続PIC10F322 フラッシュメモリの操作
- PIC10F322 フラッシュメモリの操作
- PIC10F322 PIC_WAIT
- ビット列の並び替え その2
- ビット列の並び替え その1
- 故障した温水便座を使えるようにする
- PIC10F322 RA3を出力ポートとして使用
- PIC10F322 周波数カウンタ Part2
- PIC10F322 AN592準拠 周波数カウンタ
- PIC10F322 Ring-DDS
- microchipのAN592に関する一考察
- PIC10F322 3-ch リモコンライン切り替え器
- PIC10F322 4-SW リモコン送信器
- PIC10F322 二相発振器
- PIC_DELAY
- 続PIC_WAIT
- PIC_WAIT