📄 mtouch1.c
字号:
/****************************************************************************
* Title : mTouch Slider Module *
* UpDate : 2008.12.25 * *
* Device : PIC16F883I/P * *
* Compiler: Hi-tech V9.60 std *
* IDE : MPLAB IDE V8.00 *
* AUTHER : WOOLLEY *
****************************************************************************/
#include "mtouch1.h"
#include <pic.h>
__CONFIG(MCLRDIS&WDTDIS&UNPROTECT);
void Abit_Delay(unsigned int delay )
{
while(--delay) NOP();
}
void Abit_Avreage_Value(void)
{
OPTION=Option_128Pre;
CMCON0=0B00001011;
for (Avr_Index=0;Avr_Index<4;Avr_Index++)
{
TMR0=CLR;
CMPON=SET;//比较器的使能;
Abit_Delay(Delay25ms);
CMPON=CLR;
Current_Frq=TMR0;
Avr_Value+=Current_Frq;//4次平均值总和
}
Freq_Avr_Value=Avr_Value>>2;//总的平均值右移2即除以4取得平均值
Avr_Value=Avr_Index=CLR;
Trip_Point=(Trip_per*100)/Freq_Avr_Value;
}
void Abit_Avreage_Value_Loop(void)
{
OPTION=Option_128Pre;
CMCON0=0B00001011;
TMR0=CLR;
CMPON=SET;//比较器的使能;
Abit_Delay(Delay50ms);
CMPON=CLR;
Freq_Avr_Value=TMR0;
Trip_Point=(Trip_per*100)/Freq_Avr_Value;
}
void Abit_Get_Frequency(void)
{
OPTION=Option_128Pre;
CMCON0=0B00001011;
TMR0=CLR;
CMPON=SET;//比较器的使能;
Abit_Delay(Delay25ms);
CMPON=CLR;
Current_Frq=TMR0;
TMR0=CLR;
OPTION=0B11010111;
}
void main(void)
{
FOSC4=CLR;
Abit_Delay(50000);
TRIS=0B00001001;
Abit_Avreage_Value();
Push_Flag=CLR;
while(1)
{
Abit_Get_Frequency();
TMR0=CLR;
if(Current_Frq<(Freq_Avr_Value-Trip_Point))
{
Avr_Cnt=CLR;
LED1=CLR;
}
else
{
LED1=SET;
if(Avr_Cnt++>59)
{
Avr_Cnt =CLR;
Abit_Avreage_Value_Loop();
}
}
Current_Frq=CLR;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -