当前位置: 首页 > web >正文

4438的代码分析一

cap_pad[i].led_on的运动历程

只有两个点来改变他们的状态,是1或者是0。

void task_touch_scan(void *args)

{

  change_led_lightness();   //turn off th

e sillicon turn on the sillicon  这是改变的LED灯吗????木

  touch_scan();             //确定扫描按键,只是改变状态吗????谁来执行相关操作

}

 

 

void change_led_lightness(void)

{

int i;

 

for (i = 0; i < CAP_PAD_NUM; i++) //改变4个灯????木

{

if(cap_pad[i].led_on)//ledx_change_brightness里面有cap_pad[i].led_on的置0,如果为touch_scan里有置1和置0

{

           ledx_change_brightness(i); //到底控制了什么????

}

           

}

}

代码的初始化

for(i=0; i<CAP_PAD_NUM; i++)

{

cap_pad[i].touch = 0;

cap_pad[i].led_on = 0;

cap_pad[i].bright_time = START_TIME;

}

 

 

 

void touch_scan(void)

{

    int i;

 

/*扫描按键*/

if(scan_pad_task() != SCAN_TASK_OK)//按键值确定就会开始扫描   scan_pad_task这是个干嘛用的函数,就是按完按键就扫描

{

return;

}

 

for(i=0; i<CAP_PAD_NUM; i++)

{

if(0 == cap_pad[i].touch)//如果符合条件结束这一次小循环  下面有对cap_pad[i].touch的赋值,如果还没有用就直接跳过这次的按键扫描

{

continue;//scan_pad_task里如果过触发了就赋值1

}

if(cap_pad[i].led_on) //cap_pad[i].led_on只是代表扫描完成

{

cap_pad[i].touch = 0;//触摸清零

continue;//如果扫描完成了,结束此次小循环,????如果灯开了为什么结束此次小循环

}

cap_pad[i].led_on = 1;//标志扫描

 

        if ((i==3)&&(cap_pad[0].led_on||cap_pad[1].led_on||cap_pad[2].led_on)) //什么意思没有看懂????

        {

            cap_pad[3].led_on = 0;

            return;

        }

if (!is_tpm0_interrupt_enable())//is_tpm0_interrupt_enable这是一个什么中断????

{

enable_tpm0_interrupt();//什么意思????

}

        if (device_bind_process==WAIT_FOR_TOUCH)//绑定状态的切换   按23按键进入网状态 怎么表现的23

        {

            if (i==3) //检测到有新设备的时候,状态为WAIT_FOR_TOUCH,按了3键紧接着进入了WAIT_FOR_CONFIRM,进入WAIT_FOR_CONFIRM以后干吗用呢????

            {

                device_bind_process = WAIT_FOR_CONFIRM; //点击按键后 回复一次2

                

                enter_vlps_xms(50);//进入第功率状态

                return;

            }

        }

        cap_pad[i].touch = 0;

 

        if (i==3) //如果为3执行的是第3种情况

        if (!(silicon_status & SILLICON_ALL_SET)) 

        {

            relay_status_on(i);//点亮i=3

            return;

        }

        else

        {

            led_on_ctl|=(1<<i);//用来改变LED灯的转态

            return;

        }//谁来改变silicon_status

 

        if (!(silicon_status & (1 << (SILLICON_CHANNAL_1 + i)))) //如果silicon_status0,那么就可以执行if下面的函数  木  silicon_status 和后面与是怎么配合使用的

        {

            relay_status_on(i);//改变的是LED的灯,LED和继电器同时改变

        }

        else

        {

            led_on_ctl|=(1<<i);

        }

 

        if (1==i||2==i)//这的意义是不是  连续2键和3键后启动入网用的????

        {

            touch_seq_cnt++;

        }

//ctrl_device_opt(logicch2phych[i]);

}

 

}

cap_pad[i].led_on的运动历程

void task_touch_scan(void *args)

{

  change_led_lightness();   //turn off the sillicon turn on the sillicon  这是改变的LED灯吗????木

  touch_scan();             //确定扫描按键,只是改变状态吗????谁来执行相关操作

}

 

 

void change_led_lightness(void)

{

int i;

 

for (i = 0; i < CAP_PAD_NUM; i++) //改变4个灯????木

{

if(cap_pad[i].led_on)//ledx_change_brightness里面有cap_pad[i].led_on的置0,如果为touch_scan里有置1和置0

{

           ledx_change_brightness(i); //到底控制了什么????

}

           

}

}

代码的初始化

for(i=0; i<CAP_PAD_NUM; i++)

{

cap_pad[i].touch = 0;

cap_pad[i].led_on = 0;

cap_pad[i].bright_time = START_TIME;

}

 

 

 

void touch_scan(void)

{

    int i;

 

/*扫描按键*/

if(scan_pad_task() != SCAN_TASK_OK)//按键值确定就会开始扫描   scan_pad_task这是个干嘛用的函数,就是按完按键就扫描

{

return;

}

 

for(i=0; i<CAP_PAD_NUM; i++)

{

if(0 == cap_pad[i].touch)//如果符合条件结束这一次小循环  下面有对cap_pad[i].touch的赋值,如果还没有用就直接跳过这次的按键扫描

{

continue;//scan_pad_task里如果过触发了就赋值1

}

if(cap_pad[i].led_on) //cap_pad[i].led_on只是代表扫描完成

{

cap_pad[i].touch = 0;//触摸清零

continue;//如果扫描完成了,结束此次小循环,????如果灯开了为什么结束此次小循环

}

cap_pad[i].led_on = 1;//标志扫描

 

        if ((i==3)&&(cap_pad[0].led_on||cap_pad[1].led_on||cap_pad[2].led_on)) //什么意思没有看懂????

        {

            cap_pad[3].led_on = 0;

            return;

        }

if (!is_tpm0_interrupt_enable())//is_tpm0_interrupt_enable这是一个什么中断????

{

enable_tpm0_interrupt();//什么意思????

}

        if (device_bind_process==WAIT_FOR_TOUCH)//绑定状态的切换   按23按键进入网状态 怎么表现的23

        {

            if (i==3) //检测到有新设备的时候,状态为WAIT_FOR_TOUCH,按了3键紧接着进入了WAIT_FOR_CONFIRM,进入WAIT_FOR_CONFIRM以后干吗用呢????

            {

                device_bind_process = WAIT_FOR_CONFIRM; //点击按键后 回复一次2

                

                enter_vlps_xms(50);//进入第功率状态

                return;

            }

        }

        cap_pad[i].touch = 0;

 

        if (i==3) //如果为3执行的是第3种情况

        if (!(silicon_status & SILLICON_ALL_SET)) 

        {

            relay_status_on(i);//点亮i=3

            return;

        }

        else

        {

            led_on_ctl|=(1<<i);//用来改变LED灯的转态

            return;

        }//谁来改变silicon_status

 

        if (!(silicon_status & (1 << (SILLICON_CHANNAL_1 + i)))) //如果silicon_status0,那么就可以执行if下面的函数  木  silicon_status 和后面与是怎么配合使用的

        {

            relay_status_on(i);//改变的是LED的灯,LED和继电器同时改变

        }

        else

        {

            led_on_ctl|=(1<<i);

        }

 

        if (1==i||2==i)//这的意义是不是  连续2键和3键后启动入网用的????

        {

            touch_seq_cnt++;

        }

//ctrl_device_opt(logicch2phych[i]);

}

 

}




http://www.xdnf.cn/news/11456.html

相关文章:

  • 最完整的国内手机号段
  • 如何理解FFT中时间窗与RBW的关系
  • tf坐标系转换(gmapping)
  • 【网络安全-键盘监视】学会以后去捉弄舍友,看他有了什么不可告人的秘密
  • Android-Tangram模型:淘宝、天猫都在用的UI框架模型你一定要懂!
  • mysql数据库下载、安装、使用
  • 10个方法教你解决虚幻4运行崩溃问题
  • AsyncTask的使用和工作原理
  • estore简版商城思路
  • 深入理解java.lang.InstantiationError异常
  • JNI常用数据类型转换库函数使用总结
  • 分享我免费可用API接口网站
  • bootstrap方法_【统计学】bootstrap方法
  • 软件测试方法_边界值分析法
  • 地图上分成一块一块区域 高德地图_开车用哪个导航最好?看看老司机总结的地图对比,学会不吃亏...
  • Couchbase数据备份与恢复
  • CountDownTimer 倒计时,定时器工具类
  • WTL简介
  • C#对ListBox控件中的数据进行的操作
  • JVM内存配置详
  • 高级分布式系统-第11讲 现场总线技术
  • 杭电oj--人见人爱A+B 2033
  • 线性回归(Linear Regression)
  • 一个外国的好网站 http://www.ilovejackdaniels.com/
  • Serialization即序列化全解析(转)
  • 无线网络领域国际会议/期刊排名
  • CSS教程:div垂直居中的N种方法
  • SLIC超像素分割详解(一)(二)(三)
  • verilog之testbench的写法
  • 免费标准下载网站