ZLighting如何增加多路开关
现在我们用ZLL ZLighting已经做出了彩光灯、调光灯、普通灯,但是每个CC2530芯片只能控制一个灯,其中P0_3端口 控制红色灯珠,P0_4控制蓝色灯珠,P0_5控制绿色灯珠,P0_6控制白色灯珠。现在公司老大提出了新的需求,也就是 每个芯片要控制多个普通灯,P0_3、P0_4、P0_5、P0_6各控制一个普通灯,手机可以对每个普通灯单独控制。
请问如果修改成多路开关,应该重点修改哪段程序?如何修改?
把4个灯弄成4个endpoint就可以了
难怪我看到的ZStack Lighting1.0.2有2个endpoint,一个是11,另一个是12,这么说我再增加2个endpoint就OK了。
现在我想再问一句:在P0_3、P0_4、P0_5、P0_6这几个端口中,11、12分别对应的是哪2个端口呢?
我的理解是,每个endpoint对应4个端口,如11对应的是P0_3(白色灯珠)、P0_4(红色灯珠)、P0_5(蓝色灯珠)、P0_6(绿色灯珠)。
那么12也应该对应4个端口,不知道哪4个端口,如果增加13,是不是也对应4个端口?
一个灯的I/O对应一个Endpoint
但是对于RGB彩色灯,Endpoint=11对应的是4个I/O啊,每个I/O控制一个灯珠(P0_3控制Red,P0_4控制Blue,P0_5控制Green,P0_6控制White),这又怎么解释呢?
根据TI提供的Osram参考设计,空余的I/O口还有10个:P0_0、P0_1、P0_2、P0_7、P1_1、P1_3、P1_4、P1_5、P1_6、P1_7,这样我们可以再增加2个Dimmable & Colorable LED灯,我想用Endpoint=12控制P0_0、P0_1、P0_2、P0_7,用Endpoint=13控制P1_1、P1_3、P1_4、P1_5,应该修改哪个文件的哪段程序?
Teddy,
原先的时候当收到一个控制命令以后,如果某个endpoint下,就到对应的application做处理,举个例子比方说需要处理一个Move to red的命令,那么处理的时候这个Red颜色仅靠一个IO是搞不定的,需要其他的IO口配合工作,最终出现red颜色。如果你是一个单色的调光等,那只要1路的IO就可以了。
我们的PWM是通过Timer在对应的Channel在IO输出的,如果你需要一颗CC2530控制好几个RGBW的灯,那你首先要去User Guide里面查下,你选择的这些IO是否同样能通过寄存器配置,输出PWM波形。
另外看下我们的Smaplelight里面,底层是怎么去控制,具体你可以参考C:\Texas Instruments\Z-Stack Lighting 1.0.2\Components\hal\target\CC2530PMP4712下的hal_timer.c文件。然后你看上层对修改PWM占空比函数的调用方法,在哪里调用,什么时候调用,就可以了!
好的,我先看看程序,有问题再来请教,看来任重道远啊。谢谢了!