17/05/05 11:52:38.304dRy2JcD.net
連休でヒマだから >>909 の意見を取り入れて
2個の割込みINT0、INT1を使って立ち上がり、立ち下がりの割込みを分離した。
(入力信号、出力信号としてはもちろん共に1個)
遅れ時間をオシロで見ると立ち上がり、立ち下がり共に約500nS。
CPUがやっていることに大差は無いので、結局はクロック周波数の差になるのかな。
入出力の波形画像 赤が出力(tiny2313の8番ピン)、黄が入力(6、7番ピン)
URLリンク(i.imgur.com)
プログラム(ベクタテーブルは省略)
;***** setup
RESET:
LDI R30,0b11101111 ;Port-D input with pull up, output Low
OUT PortD,R30
LDI R30,0b00010000 ; output:bit4, input:bit0~3,5~7
OUT DDRD,R30
;
LDI R30,stack ;set stack
OUT SPL,R30
;
LDI R30,0b00001011 ;triggered by +edge of INT0 and -edge of INT1
OUT MCUCR,R30
LDI R30,0b11000000 ;enable INT0/INT1 interrupt
OUT GIMSK,R30
SEI
;
;***** main
Loop:
RJMP Loop ;wait interrupt
;
;***** INT0/INT1
IRQ1:
SBI PortD,_Out1 ;output Hi
RETI
;
IRQ2:
CBI PortD,_Out1 ;output Lo
RETI
;
しかしPICスレは何で毎度毎度、最後は罵倒レスの応酬になるかねぇ。
おかしな奴は相手にするとキリが無い、 948 の言うとおり無視するのが一番だと思うけどな。