ずっと動かなかった原因はコンフィギュレーションの設定漏れでした。
細かく試していませんが、存在する設定は何らかの設定にしてあげないと動かないようです。
こちらが動画です。 4秒ほど笑
400msで点滅を繰り返しています。キリの悪い数で気持ち悪いのでこのあと乗せるプログラムは500msにしています。
/*
* File: L_tika.c
* Author: windows
*
* Created on 2014/05/16, 21:12
*/
#pragma config CPD = OFF,\
BOREN = OFF,\
IESO = OFF,\
DEBUG = OFF,\
FOSC = INTRC_NOCLKOUT,\
FCMEN = OFF\
WDTE = OFF,\
MCLRE = OFF,\
LVP = OFF,\
PWRTE = OFF,\
WRT = OFF
/*
*CPD -> Data Code Protection bit
*BOREN -> Brown Out Reset Selection bits
*IESO -> Internal External Switchover bit
*DEBUG -> In-Circuit Debugger Mode bit
* FOSC -> Oscillator Selection bits
* FCMEN -> Fail-Safe Clock Monitor Enabled bit
* MCLRE -> RE3/MCLR pin function select bit
* WDTE -> Watchdog Timer Enable bit
* LVP -> Low Voltage Programming Enable bit
* PWRTE -> Power-up Timer Enable bit
*/
#include <stdio.h>
#include <xc.h>
#include <pic.h>
#define _XTAL_FREQ 5000000
static void set_port();
void main(void) {
set_port();
while(1){
PORTA = 0xff;
__delay_ms(500);
PORTA = 0x00;
__delay_ms(500);
}
return;
}
static void set_port(){
TRISA = 0x00; //output mode
PORTA = 0x00; //cleaning
return;
}
さて・・・ ここまで苦労しましたがここから赤外線の制御にやっと入れます。
16F886は内部クロックがあるのでそれで動作させていますが、赤外線の実験は 16F84A というものを使います。
初めて外部クロック(セラコン)を使うので動作してくれるか不安ですが何とかするしかないですね~^^
0 件のコメント:
コメントを投稿