#ifndef COLOR_h
#define COLOR_h

#include "Marlin.h"
#include "FlexiTimer2.h"//本程序使用定时器2，采用flexitimer库
#include "Arduino.h"

//把TCS3200颜色传感器各控制引脚连到Arduino数字端口
#define S0    17   //物体表面的反射光越强，TCS3002D内置振荡器产生的方波频率越高，
#define S1    23   //S0和S1的组合决定输出信号频率比例因子，比例因子为2%
                  //比率因子为TCS3200传感器OUT引脚输出信号频率与其内置振荡器频率之比
#define S2     25   //S2和S3的组合决定让红、绿、蓝，哪种光线通过滤波器
#define S3     27
#define OUT    2  //TCS3200颜色传感器输出信号连接到Arduino中断0引脚，并引发脉冲信号中断
                  //在中断函数中记录TCS3200输出信号的脉冲个数
#define LED    16  //控制TCS3200颜色传感器是否点亮LED灯


void TSC_Init();
void TSC_FilterColor(int Level01, int Level02);
void TSC_Count();
void TSC_Callback();
void TSC_WB(int Level0, int Level1);

//对于外界的，只需要关注下面两个接口就可以了
void initial();//这个是颜色传感器初始化，作用是对应白色底色背景调整比例因子的值。
void rgb_value();//这个就是根据已经初始化的颜色传感器，测定出一个物体的颜色。

extern float g_SF[3];     //从TCS3200输出信号的脉冲数转换为RGB标准值的RGB比例因子
extern int   g_count;  // 计算与反射光强相对应TCS3200颜色传感器输出信号的脉冲数
// 数组用于存储在1s内TCS3200输出信号的脉冲数，它乘以RGB比例因子就是RGB标准值
extern int   g_array[3];//存放原始脉冲数
extern int   g_array1[3];//存放比例脉冲数  
extern int   g_flag ;   // 滤波器模式选择顺序标志
extern bool g_flag1;

#endif


