PIC10F220のADC

M

max0412

Guest
私は
、 遅延の長さを設定するには
、 ADCは10F220を使用するようにします。私は
、 遅延サブルーチン内に挿入されるような数には
、 ADC入力の特定の範囲を定義するために等しく使うことができます。または
私は 定数を使用するべきか
、 このすべてが悪い私はいくつかの他の方法は
、 それをすればいいのです。

擬似コード
コード:センスのADC

ADCの場合< = 1次に韓国= 10

ADCは> 1 < = 2次に韓国= 20

 
&lt;a href="http://www.komputerswiat.pl/nowosci/bezpieczenstwo/2010/50/cyberprzestepczosc-2011.aspx"&gt; &lt;img align="left" src="http://www.komputerswiat.pl/media/2010/351/1568526/fsecure-zaj.jpg" /&gt;&lt;/a&gt; Upływający rok pokazał, w jakich kierunkach podążają myśli cyberprzestępców. Na tej podstawie można przewidzieć, na czym skupią się w przyszłym roku.&lt;img width='1' height='1' src='http://rss.feedsportal.com/c/32559/f/491281/s/10b48a1b/mf.gif' border='0'/&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://da.feedsportal.com/r/88740674535/u/0/f/491281/c/32559/s/10b48a1b/a2.htm"&gt;&lt;img src="http://da.feedsportal.com/r/88740674535/u/0/f/491281/c/32559/s/10b48a1b/a2.img" border="0"/&gt;&lt;/a&gt;

Read more...
 
私は遅延を作成するには
、 ADCを使用していない。遅れを簡単にソ¥フトウェアでは
、 ADCと外部ネットワークとのタイミングを必要とせずに作成することができます。

または
、 単に任意の遅延を作成するソ¥フトウェアを使用するループTMR0を使用することができます。

 
VVV書いた:

遅れを簡単にソ¥フトウェアでは、 ADCと外部ネットワークとのタイミングを必要とせずに作成することができます。
 
ADCの場合にはいい方法だし
、 タイミングを設定するために鍋を使用する必要があります。あなたはキャップを可変抵抗で課金、請求時に十¥分なキャップなどのシンプルなフォームを使用することができる、それは入力ポートがトリガされます。場合は
、 いくつかの予¥備の入力ポートすると、例えば
1月15日 からの秒等を与える可能¥性
のあるdil スイッチ、 4の方法を使う可能¥性がある。

 
私 の心にはどのようなていた(下)の抜粋を参照してくださいしているユーザーは
、 ADCの値をコードに変換
し、この ルーチンでは
、 以下の遅延を挿入する選択を使用しています。ユーザは
、ポット 秒間隔で長さを遅延するには、筐体に印刷されますが
、 対応する筐体の外から
、 ポットを調整することができます。この値は
、 現在までに4回のdelay2で設定した番号に渡されるようにする必要があります。

スニペット

コード:遅れる

movlw 0.4 ; delay2 (ループカウンタ)から倍の数

movwf dc4delay2

movlw 0.180 ; Offtime

movwf dc3

dly3

decfsz dc3は、 F

後藤dly3dly4

decfsz dc4は、 F

後藤delay2

後藤詐欺¥

 
[ OK
] を、今あなたに必要なものを理解しています。
私はこの簡単な方法
:お使いのADC 255は、ポットの位置に応じて0から番号を提供する予¥定だと思う。は
、 256の手順です。
あなた
は 、手順の特定のコードが必要と言う8または16 。彼らの2つの力を維持できてうれしいです。例えば 、あなた
が16 のステップが必要と仮定しましょう。
そのためには
、 ステップの遅延を与える遅延ルーチンを作成すると、 5msという。請求はDly_5ms 。今
、 必要なすべてのカウンタは
、 カウント数5msの遅延や負荷を挿入することですが
、 数は
、 鍋の位置に基づいて反論する。

そのためには、 ADCの読書を16
日まで に分割して15から0から番号を取得。場合 は
、 16日 と
31日 の結果との間
の 他
の 単語を読む場合は
、 ADCの結果を0から15の間で0 、 1 、およびようになります。

最小遅延する必要がありますwhaに応じてその数を一定に追加します。例えば、 25msの遅延
を 最小にして5を追加している場合は1を追加すると、 5msの一分遅れ、必要があります。そのほかの上限を超えていないことを確認するために
、 結果を確認してください。たとえば、最大遅延が50ms
、 その数は
10 以上であることを確認するはずです。

手順の別の番号が必要な場合は、
単に 何か他には
、 ADCの読み取り分ける。場合によって分けることができますrrf手順2のべき乗のステップ数を維持(各rrf前には
、 Cフラグをクリア
することを 忘れないでください) 。このコードで
は16に 分割
する より高速で
、 それは別の話
な トリック
を 使用
しています 。

設定
した 場合は
、 最大
最大 #手順の
、 手順の数を減らすことができるのが、鍋の最後の部分は使用されません小さくする。以下のコード
で は
、 最大10に設定
され て参照してください。それはあなたが、わずか10の手順を与えても
、鍋 の下
の 部分に、均等に広がるは圧迫されます。
最小は
、 # の手順は、鍋の上の部分を多く残しを減らすのが使えなくなるの増加。

私 はあなたを安全にこのアプローチには64の手順を持つことができます10F220と言うことが私の経験から。ADCのノイズのためにもっと何かエラーを起こしやすいとなります。
私はあなたに直接年次ポットは
、 ADC入力の0.1uFキャップ権利をVDDからGNDに接続し使用することを推奨します。
コード:最小EQU 1

最大EQU 10swapfアドレス、水; 、かじることでADCを読むスワップ;

andlw 0x0F 、上位4ビットをクリア、これらの2命令を効果的に16で割る

movwfカウンタ、遅延カウンタの値を保存

movlw最小;

addwfカウンタは、 F ;カウンター0以上の最小値を持っていることを確認

movlw最大;これで、チェック

subwfカウンター、水;かどうかよりも大きいカウンタ最大

btfsc状況はCの場合は、 [ OK ]をしている

後藤デルなどが遅れて行くmovlw最大;他のカウンタの最大勢力に

movwfカウンターデル:コールDly_5ms ;遅延5ms

decfszカウンタは、 F ;終わったの?

後藤デルの場合は、稼働し続ける完了: ......... ;ここでは、プログラム可能¥な遅延後に何が必要です
 
命令の詳細をお寄せいただきありがとうございます。それはまさに私の探していたのです。

私は最終的にいくつかの例(グーグル)
の よう
に 何を使用してテーブルを参照して
やっ て
みたかった が見つかりましたが、私と思うページをはるかに効率的であることを示し
ている のです。

これらのほとんど
の PICは最適です!1つ少ない6 -酔いどれ- 23 PICは余分な部品の多くを排除します。

 
引用:あなたが使用されているコードのタグの書式設定が保持されると考えられています。
厄介なのはちょっと残念
 
私はカウンター"に保存"私の遅延日常での使用に問題が値を取得しようとしてるん
です 。私はいくつかのシミュレーションを走り
、 PIC10Fシムでは
、 値は
、 アドレスを取得できないのアドレスに格納?それは
、 Wにアドレスを置くの値はレジスタに格納されます。"ここ!!!!!!以下
を参照してください 。

何がおかしいのです。編集-いいえ私はそれを計算した。VVV the code you gave me for the ADC part works perfectly .Thank You

私はmovfw comand使用されます。場合

、 ADCの一部をもらったVVVのコードを完全に動作します。ありがとうございましたコード:リストp = 10F220 ;リストディレクティブプロセッサを定義するために

#など<p10F220.inc> ;プロセッサの特定の変数の定義__CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF & _MCPU_OFF & _IOFSCS_4MHZ;*****可変の定義

TEMP_VAR UDATA

count1解像度1

count2解像度1

count3解像度1

count4解像度1

count5解像度1

count6解像度1

count7解像度1

count8解像度1

count9解像度1

カウンタ1解像度

cont1解像度1

cont2解像度1

最小EQU 01h

最大EQU 0Ah;************************************************* *********************

RESET_VECTORコードを0xFF ;プロセッサをリセットベクトル;内部rcの校正値はマイクロチップが置かれている場所では0xFF

;でのKはリテラル値であるmovlw韓国、 。メイン0x000コード

movwf OSCCAL ;工場で校正値を登録更新;*******ジャンプ後藤メイン

;*********遅延が20msdelay20

movwf cont1 ;値カウンタ渡さここで保存

movlw .65

movwf count5

movlw 0.237

movwf count6dloop1

btfssのGPIO 、 0 ;高GP0のためのテストですか?

後藤センス;なしテストを続ける

btfssのGPIO 、 3 ; GP3に高いのためのテストですか?

後藤センス;なしテストを続ける

decfsz count6は、 F ;まだ高い遅延を続行

後藤dloop1

decfsz count5は、 F

後藤dloop1

が20msの遅延decfsz cont1は、 F ;倍の数々

後藤dloop1

retlwは0x00;------ 4で500ミリ秒の遅延MHzの"

'

'

;******************遅延10us

'

'

;*****開始

; AN1アナログこの部分を構¥成します。
"この値を読み、挿入anologの展開のみに基づいてカウンタの値を" 。
は、 "カウンタを使用することが20msの遅延で保存して格納されている値です。メインmovlw b'10000101 ' ;設定のADC : AN1アナログ入力

movwf ADCON0

movlw .20

コールDelay10uS

BSF ADCON0 、 1 ;開始変換loop0

NOP

BTFSC ADCON0 、 1 ;完了を待つ

後藤loop0swapfアドレス、水; 、かじることでADCを読むスワップ;

andlw 0x0F 、上位4ビットをクリア;効果的に16で割る

movwfカウンタ、遅延カウンタの値を保存

movlw最小;

addwfカウンタは、 F ;カウンター0以上の最小値を持っていることを確認

movlwカウンタ;これで、チェック

subwfマックス、水;かどうかよりも大きいカウンタ最大

btfss状況はCの場合は、 [ OK ]をしている

後藤開始し、遅れて行くmovlw最大;他のカウンタの最大勢力に

movwfカウンター;**** ADCの設定をオフにするのGP2のI / 0出力

開始する

CLRF ADCON0 ; ADCのオフ

movlw b'11011111 ' ;クリアtocs

オプション

BCF OSCCAL 、 FOSC4 ;のGP2でのI / O !movlw b'1011 ' ; GP2の出力として

トリスのGPIO

CLRFのGPIO ;開始GP2の低

movlw b'0000 'している場合は;***********この部分の感覚GP0 、 GP3高の両方の値を渡します高いカウンター" "時が20ms delay.The値を保存"の金額を設定することになっているカウンターで保管は、遅延が20ms回行われます。センス

btfssのGPIO 、 0 ;高GP0のためのテストですか?

後藤センス;なしテストを続ける

後藤一ドル

後藤一ドル

btfssのGPIO 、 3 ; GP3に高いのためのテストですか?

後藤センス;なしテストを続ける

movlwカウンタ;こちら!!!!!!!!!!!

コールdelay20 ;後藤両方の入力信号の遅延を高

movlw .10 ;パルス数カウンタ

movwf count8;***** GP0 、 GP3開始1Hzの両dealy時間で10パルスoutputing高い。オン

bsfのGPIO 、 2 ; GP2の高パルス1Hzの10 outputing開始

movlw 0.1 ;幅x 500ms遅延

コールDelay500mSパルス時間;**********オフ

切れて

bcfのGPIO 、 2 ;低いのGP2

movlw .1

コールDelay500mSdecfsz count8は、 F ;パルスカウンタ

後藤;パルスを維持していない

movlw .1

コールDelay500mS ;安定化のための遅延を提供します。

後藤センス;戻って、最初からやり直すエンド;プログラム'ディレクティブ'末端

 

Welcome to EDABoard.com

Sponsor

Back
Top