Timer0作为Microchip PIC10F202的计数器

时间:2018-02-18 13:48:36

标签: counter

我为RC滑翔机开发RC开关。 我有microkontroller Microchip PIC10F202,我的ON / OFF LED灯有问题。 我想从RC接收器触发输入PPM信号,我将GP2设置为输入(通过T0CKI并计算每个上升沿 - 从低到高),但LED仍然亮,不对来自RC接收器的输入信号作出反应。 我用C语言发布我的源代码,我不能用ASM语言。

//这是包含一些宏和函数原型的头文件

#ifndef XC_HEADER_TEMPLATE_H
#define XC_HEADER_TEMPLATE_H

#include <xc.h> 

#define _XTAL_FREQ 4000000
#define KONST_ON 50
#define KONST_OFF 1000


#define STROBO_LED GP0
#define NAVI_LED GP1
#define RC_SIGNAL GP2
#define STAV_ON 1
#define STAV_OFF 0




#ifdef  __cplusplus
extern "C" {
#endif 


#ifdef  __cplusplus
}
#endif 

void setup ();
void flashing ();

#endif  

//在此功能中设置microkontroller

#include <xc.h>
#include "prototypy.h"

void setup () 
{
    OSCCAL = 0b0111111;
    //STATUS = 0b00111000;
    OPTION = 0b11100111;
    TRISGPIO = 0b0000;    

};

//这是LED闪烁的功能

#include <xc.h>
#include "prototypy.h"   

void flashing ()
{
    __delay_ms (KONST_OFF);    
    STROBO_LED = STAV_OFF;

    __delay_ms (KONST_ON);   
    STROBO_LED = STAV_ON;

};

//在这个主函数中我做逻辑积,其中我有来自引脚GP2和数字1的逻辑状态

#include <xc.h>
#include "prototypy.h"


// Code protection bit
#pragma config CP = OFF
// Watchdog timer
#pragma config WDTE = OFF
// Pin function
#pragma config MCLRE = OFF



void main ()
{    
    setup ();  


    while (1)
    {      

        if (RC_SIGNAL & 1)
        {               
            flashing ();
        }     

    }       
}

请帮助我,有人帮忙并在我的源代码中发现错误吗?

1 个答案:

答案 0 :(得分:0)

我并不熟悉这个,但我猜你的Pin RC_SIGNAL没有配置为输入。请尝试

TRISGPIO = 0b0100;