趣味の電子工作(マイコン)

趣味の電子工作(マイコン)

PR

×

キーワードサーチ

▼キーワード検索

プロフィール

白隠1949

白隠1949

カレンダー

お気に入りブログ

まだ登録されていません

コメント新着

chaba@ HmQfXFutzFTcsGNIKcg JMgi4U http://www.FyLitCl7Pf7kjQdDUOLQO…
a;j@ Re:ゴム鉄砲(09/22) 僕輪ゴム鉄砲を作っているんですけど、 マ…

フリーページ

2013.03.10
XML
カテゴリ: カテゴリ未分類
回路図です、PIC12F683を使用しました。本職は、一応ソフト屋なので回路は実際の資料で
確認して下さい。
無題.jpg
CA320030.JPG

PIC12F683のソースコードです。処理は単純です、ホールセンサ(GP0)の変化割込みでコイルの出力を変更するだけです。
なお、ソース中のA/D変換はデバック用ですので不要です。

 

#include &ltstdio.h>

__CONFIG(FOSC_INTOSCIO & WDTE_OFF & PWRTE_ON
& BOREN_ON & MCLRE_ON & IESO_OFF
& FCMEN_OFF & CP_OFF) ;

#define _XTAL_FREQ 8000000

int dly;

void dl()
{
int i;
i = dly;
while(i--);
}

void interrupt isr(void)
{
if(GPIF) {
if(GP0) {
//dl();
GPIO = 0x10 | (GPIO & 0x0f);
GP2 = 1;
} else {
//dl();
GPIO = 0x20 | (GPIO & 0x0f);
GP2 = 0;
}
GPIF = 0;
}
}

void main(void)
{
OSCCON = 0b01111110; // 内臓クロック8MHzに設定
ANSEL = 0b00000010; // AN1
TRISIO = 0b00001011;
// GPIO
CMCON0 = 0b00000111; //
IOCbits.IOC0 = 1;
INTCONbits.GPIE = 1;
INTCONbits.GPIF = 0;
// Grobal interrupt
INTCONbits.GIE = 1; // Grobal interruptを有効にする
INTCONbits.PEIE = 1; // 外部割込みを有効にする

/*ADC初期設定*/
ADCON0 = 0b10000101; //右詰め|基準電圧は電源Vdd)|空白|空白|AN1(GP1)|ADC終了|ADC有効
GPIO = 0x10 | (GPIO & 0x0f);
__delay_ms(20);
GPIO = 0x20 | (GPIO & 0x0f);
while(1) {
__delay_us(25);
GO = 1; //ADC変換開始
while(GO); //ADC変換終了までループ待機
dly = ADRESL + (ADRESH << 8);
dly /= 4;
if(dly < 3) dly = 1;
}
for(;;);
}



旨く回らないときは、コイルの極性を入れ替えたりしてみて下さい。





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2013.03.11 06:10:11
コメント(0) | コメントを書く


■コメント

お名前
タイトル
メッセージ
画像認証
上の画像で表示されている数字を入力して下さい。


利用規約 に同意してコメントを
※コメントに関するよくある質問は、 こちら をご確認ください。


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
Design a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: