[戻る]
新着表示

Re^3: トランジスタON/OFF制御 投稿者:babi 投稿日:2018/10/02(Tue) 17:28:40 No.1216

> > 電源DC24V使用。
> > ベース電圧は
> > 24-0.6/0.001=23KΩと考えて制御できるのでしょうか
>
> 正しくは、トランジスタは電流増幅なので、ベース電圧ではなく、
> ベース電流で計算します。
>  必要なベース電流=コレクタで制御する電流÷電流増幅率
> これで最小限必要なベース電流となるのでこれの大体2倍から3倍くらいの電流が流れるような抵抗を選択します。
>  抵抗値=24V÷ベース電流
> ありがとうございます。
 規格表2SC1815の最大定格で上記DC24Vはどの項目ですか?


>

Re^3: タイマー0割り込みの設定 投稿者:Gokan 投稿日:2018/10/02(Tue) 09:30:54 No.1215

PIC16F18313のタイマ0はPIC16F886とは全く異なる構成ですので
データシートをよく読む必要があります。


> > 割り込み処理で、コアレジスタ、共通RAM はバンク切り替えなしでアクセスできますが
> > 他の特殊機能レジスタ、汎用RAM はバンク切り替えが必要です
> ご教示ありがとうございます。
> 早速試してみましたが、変化がありません。
> timer 70h
> BANKSEL PIR0
> を追加しました。
> シュミレータで04番地にブレークポイントを設定していますが、
> mainルーチンから抜けません。
> 16F886では同じような方法で動作しています。
> コンフィグか初期設定の<タイマー割り込みに間違いが有りそうなのですが、一週間ほど悩んでいます。追加変更箇所コピペします。
> 宜しくご教示お願いします。
> ****************************
> timer EQU 70h
>
> ; 割込み処理 <1msecタイマー割り込み>
>
> ORG 4h ; 新16Fは復帰時のアドレス値がスタックに保存される
> intr
> CLRF PCLATH ; 割り込み処理内はページ‘0’の為クリアする
>
> ; BSF PORTA,RA5 ;“ 1 ”にする(デバック用)
> BANKSEL PIR0 ; バンク PIR0
> BTFSC PIR0,INTF ; RB0 変化割込み
> GOTO MOintr
>
> OUTMOin
> BTFSS PIR0,TMR0IF ; タイマー0 割り込み
> GOTO OUTintr
>
> BCF PIR0,TMR0IF ; タイマー割り込みフラグクリア
> BSF timer,T1ms
>
> ; BCF PORTA,RA5 ;“ 0 ”にする(デバック用)
>
> OUTintr ; 新16Fは復帰時自動的にレジスタ値が回復される
> RETFIE ; 割込み許可リターン
>
> MOintr
> ; BSF Poji,MOCin ;
> BCF PIR0,INTF ;
> GOTO OUTMOin

Re^2: タイマー0割り込みの設定 投稿者:河原 利昭 投稿日:2018/10/02(Tue) 06:42:23 No.1214

> 割り込み処理で、コアレジスタ、共通RAM はバンク切り替えなしでアクセスできますが
> 他の特殊機能レジスタ、汎用RAM はバンク切り替えが必要です
ご教示ありがとうございます。
早速試してみましたが、変化がありません。
timer 70h
BANKSEL PIR0
を追加しました。
シュミレータで04番地にブレークポイントを設定していますが、
mainルーチンから抜けません。
16F886では同じような方法で動作しています。
コンフィグか初期設定の<タイマー割り込みに間違いが有りそうなのですが、一週間ほど悩んでいます。追加変更箇所コピペします。
宜しくご教示お願いします。
****************************
timer EQU 70h

; 割込み処理 <1msecタイマー割り込み>

ORG 4h ; 新16Fは復帰時のアドレス値がスタックに保存される
intr
CLRF PCLATH ; 割り込み処理内はページ‘0’の為クリアする

; BSF PORTA,RA5 ;“ 1 ”にする(デバック用)
BANKSEL PIR0 ; バンク PIR0
BTFSC PIR0,INTF ; RB0 変化割込み
GOTO MOintr

OUTMOin
BTFSS PIR0,TMR0IF ; タイマー0 割り込み
GOTO OUTintr

BCF PIR0,TMR0IF ; タイマー割り込みフラグクリア
BSF timer,T1ms

; BCF PORTA,RA5 ;“ 0 ”にする(デバック用)

OUTintr ; 新16Fは復帰時自動的にレジスタ値が回復される
RETFIE ; 割込み許可リターン

MOintr
; BSF Poji,MOCin ;
BCF PIR0,INTF ;
GOTO OUTMOin

Re: タイマー0割り込みの設定 投稿者:koujikuu 投稿日:2018/10/02(Tue) 00:08:24 No.1213

割り込み処理で、コアレジスタ、共通RAM はバンク切り替えなしでアクセスできますが
他の特殊機能レジスタ、汎用RAM はバンク切り替えが必要です

タイマー0割り込みの設定 投稿者:河原 利昭 投稿日:2018/10/01(Mon) 16:10:51 No.1212

アセンブラで記述し16F18857,16F18313両方で試しましたがタイマー0割り込みの設定できません。ご教示方宜しくお願いします。
tes18313A.asmファイルをコピペしました。
MPLAB X IDE v4.15 のシミュレータの割り込みルーチンにブレークポイントを設定して確認しました。
尚、PICに書き込みしてNCOは NCO1INCL データを変更すると周波数が変化しているので動作していると思います。
********
; ファイル名 tes18313A.asm
; タイマー0割込み、アナログ処理 NCO テスト用
; RA0-DAC1OUT RA1-ANSA1 RA2-NCO1 RA3-IN RA4-LATA4 RA5-LATA5
LIST P=16F18313
INCLUDE P16F18313.INC

__CONFIG _CONFIG1, _RSTOSC_HFINT1 & _FEXTOSC_OFF
__CONFIG _CONFIG2, _MCLRE_OFF & _WDTE_OFF
__CONFIG _CONFIG3, _LVP_OFF

CNT50us EQU 20h ;*
CNT5ms EQU 21h ;*
CNT1ms EQU 22h ;*
timer EQU 23h ;*タイマー割り込み・ステージフラグ
T1ms EQU 00h ; TMR0割り込み1mSecフラグ
Steg00 EQU 24h ;*ステージカウンター00
St01 EQU 00h ;
St02 EQU 01h ;
St03 EQU 02h ;

swADA0 EQU 78h ;*sw抵抗ラダーRA0 A/D変換結果

;◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆
; -----------------------------------------------------
ORG 0h
GOTO init

; -----------------------------------------------------
; 割込み処理 <1msecタイマー割り込み>

ORG 4h ; 新16Fは復帰時のアドレス値がスタックに保存される
intr
CLRF PCLATH ; 割り込み処理内はページ‘0’の為クリアする

BSF PORTA,RA5 ;“ 1 ”にする(デバック用)

BTFSC PIR0,INTF ; RB0 変化割込み
GOTO MOintr

OUTMOin
BTFSS PIR0,TMR0IF ; タイマー0 割り込み
GOTO OUTintr

BCF PIR0,TMR0IF ; タイマー割り込みフラグクリア
BSF timer,T1ms

BCF PORTA,RA5 ;“ 0 ”にする(デバック用)

OUTintr ; 新16Fは復帰時自動的にレジスタ値が回復される
RETFIE ; 割込み許可リターン

MOintr
; BSF Poji,MOCin ;
BCF PIR0,INTF ;
GOTO OUTMOin

; -----------------------------------------------------
; 初期処理 <クロック&ポート設定 各種信号初期化>
init
; <TMR0割込みの設定>
BANKSEL T0CON0 ; ■ バンク T0CON0 に切替え
MOVLW B'10000000' ; TMR0 割り込み許可 ポストスケーラ 1:1
MOVWF T0CON0 ;
MOVLW B'01110100' ; HFINTOSC プリスケーラ 1:16
MOVWF T0CON1 ;

BANKSEL INTCON ; ■ バンク INTCON に切替え
MOVLW B'10000001' ; GIE RB0/INT 立ち上がりエッジ
MOVWF INTCON ; 割り込み許可

BANKSEL PIE0 ; ■ バンク PIE0 に切替え
MOVLW B'00100001' ; TMR0 RB0/INT 割り込み許可
MOVWF PIE0 ;
MOVLB 0 ; ■ バンク0に切替え

CLRF TMR0H ; TMR0をクリア
; BSF T0CON0,T0EN ; 念のため入れてみた 変化無かった
BSF Steg00,St01 ; ステージ1

; <クロック設定>
BANKSEL OSCFRQ ; ■ バンク OSCFRQ に切替え
MOVLW B'00000011' ; B'00000011' B'00000101'
MOVWF OSCFRQ ; CLOCK=8MHz CLOCK=16MHz

; <ポート設定>
MOVLB 0 ; ■ バンク0に切替え 
MOVLW B'00001010' ; 00001010
MOVWF TRISA ; RA1 はアナログ入力 RA3 はデジタル入力
MOVLW B'00101001' ; 00101001

; <A/D設定>
; BANKSEL ADCON0 ; ■ バンク ADCON0 に切替え
; MOVLW B'10000000' ; B'1000 0000'
; MOVWF ADCON0 ; A/D変換設定 左詰め ADCLK '000111'
; MOVLW B'00000111' ; B'0000 0001'
; MOVWF ADCLK ; Fosc/16
; MOVLW B'00000000' ; B'0000 000'
; MOVWF ADREF ; リファレンス電圧 マイナス側 VSS プラス側 VDD

BANKSEL ANSELA ; ■ バンク ANSELA に切替え
MOVLW B'00000010' ; B'0000 0010'
MOVWF ANSELA ; ANSA1をアナログ入力に設定
MOVLB 0 ; ■ バンク0に切替え

; <NCOの設定>
BANKSEL RA2PPS ; ■ バンク RC2PPS に切替え
MOVLW 0x1D ; NCO
MOVWF RA2PPS ; RC2をNCO出力に設定

BANKSEL NCO1CON ; ■ バンク NCO1CON に切替え
MOVLW B'10110000' ;
MOVWF NCO1CON ; NCOモジュール有効 FDC50%デューティ出力
CLRF NCO1CLK ; NCOクロック Fosc 選択
MOVLW B'00000111' ;
MOVWF NCO1INCL ; 初期値設定?
MOVLB 0 ; ■ バンク0に切替え
NOP
; -----------------------------------------------------
; メイン処理
main
BTFSS timer,T1ms ; タイマーフラグチェック
GOTO main ;

BCF timer,T1ms ; タイマーフラグクリア ★
BTFSC Steg00,St01 ; ステージ1?
GOTO Steg001

BTFSC Steg00,St02 ; ステージ2?
GOTO Steg02

BTFSC Steg00,St03 ; ステージ3?
GOTO Steg03

GOTO main

;◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆
;------------------ ステージ1 学習運転・D41+41G= 錠SW StRunOk 処理
Steg001

;------- A/D変換ポート指定
BANKSEL ADCON0 ; ■ バンク ADPCH に切替え
MOVLW B'00000101' ;
MOVWF ADCON0 ; ANA1 ADONを選択
MOVLB 0 ; ■ バンク0に切替え

; GOTO St01in

St01Out
BCF Steg00,St01 ;ステージ1をクリア
BSF Steg00,St02 ;ステージ2をセットしてMainへ
GOTO main ;



;◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆
;------------- ステージ2 AN0 A/D変換判定処理
Steg02

;--------- A/D変換指令
BANKSEL ADCON0 ; ■ バンク ADCON0 に切替え
BSF ADCON0,GO ; アナログポート ANA1 変換指令 
MOVLB 0 ; ■ バンク0に切替え

; GOTO St02in

St02Out
BCF Steg00,St02 ;ステージ2をクリア
BSF Steg00,St03 ;ステージ3をセットしてMainへ ※※
GOTO main

;◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆
;---------------------- ステージ3 AN1 A/D変換判定処理
Steg03

;--------- A/D変換ポート指定
BANKSEL ADRESH ; ■ バンク ADRESH に切替え
MOVF ADRESH,W ; AD変換結果
MOVWF swADA0 ; swADA0 に保存
MOVLB 0 ; ■ バンク0に切替え

; GOTO St03in

St03Out
BCF Steg00,St03 ;ステージ3をクリア
BSF Steg00,St01 ;ステージ1をセットしてMainへ
GOTO main ;

END

Re: トランジスタON/OFF制御 投稿者:Gokan 投稿日:2018/10/01(Mon) 13:15:15 No.1211

> 電源DC24V使用。
> ベース電圧は
> 24-0.6/0.001=23KΩと考えて制御できるのでしょうか

正しくは、トランジスタは電流増幅なので、ベース電圧ではなく、
ベース電流で計算します。
 必要なベース電流=コレクタで制御する電流÷電流増幅率
これで最小限必要なベース電流となるのでこれの大体2倍から3倍くらいの電流が流れるような抵抗を選択します。
 抵抗値=24V÷ベース電流

 

トランジスタON/OFF制御 投稿者:babi 投稿日:2018/10/01(Mon) 11:39:21 No.1210

電源DC24V使用。
ベース電圧は
24-0.6/0.001=23KΩと考えて制御できるのでしょうか

Re^2: 電子工作入門書籍の選択 投稿者:Boro Engineer 投稿日:2018/09/05(Wed) 07:33:02 No.1204

ありがとうございました。

Re: 電子工作入門書籍の選択 投稿者:Gokan 投稿日:2018/09/04(Tue) 15:35:53 No.1202

(2)がお勧めですね。

> 後閑様
> 初投稿になります。よろしくお願いいたします。
>
> (1)誰でも手軽にできる電子工作入門
> (2)作る・できる/基礎入門 電子工作の素
> (3)電子工作入門以前
> (4)電子工作は失敗から学べ!
>
> (1)の改訂版 = (2) ←前書きより
> (2)の改訂版 = (3)&(4) ???
>
> 現状、書店で見かけるのは(2)(3)(4)です。(2)は現役の名著に見えますが、できれば最新版で勉強したいです。どれを買うか、迷ってます。

電子工作入門書籍の選択 投稿者:Boro Engineer 投稿日:2018/09/01(Sat) 13:58:24 No.1201

後閑様
初投稿になります。よろしくお願いいたします。

(1)誰でも手軽にできる電子工作入門
(2)作る・できる/基礎入門 電子工作の素
(3)電子工作入門以前
(4)電子工作は失敗から学べ!

(1)の改訂版 = (2) ←前書きより
(2)の改訂版 = (3)&(4) ???

現状、書店で見かけるのは(2)(3)(4)です。(2)は現役の名著に見えますが、できれば最新版で勉強したいです。どれを買うか、迷ってます。

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |

- WebForum -