【中科昊芯Start_DSC28034PNT湖人开发板试用体验】控制WS2812

描述

本文来源电子发烧友社区,作者:full_stack, 帖子地址:https://bbs.elecfans.com/jishu_2293782_1_1.html

根据原理图,
中科昊芯
参考控制LED的代码,

中科昊芯
计算120M控制WS2812延时时间。

中科昊芯

主要代码如下,

void WS_Set_One(unsigned long dat)
{
	unsigned char i;
	for(i=0; i<24; i++)
	{
		if(0x800000 == (dat & 0x800000) )	{GpioDataRegs.GPASET.bit.GPIO19 = 1; delay_250ns(); delay_250ns(); delay_250ns(); GpioDataRegs.GPACLEAR.bit.GPIO19 = 1; delay_250ns();}
		else								{GpioDataRegs.GPASET.bit.GPIO19 = 1; delay_250ns(); GpioDataRegs.GPACLEAR.bit.GPIO19 = 1; delay_250ns(); delay_250ns(); delay_250ns();}
		dat <<= 1;
	}
}

void WS_SetAll(unsigned long dat, unsigned char led_num)
{
	unsigned char j;
	for(j=0; jWS_Set_One(dat);
	}
	DELAY_US(300);
}

void Led_Cycle_Run(void)
{
	unsigned char i;
	for(i = 0; i < 30; i++)
	{
		WS_SetAll(0xFFFFFF, i);
		DELAY_US(34000);
		DELAY_US(34000);
	}

}
;>

延时函数如下

void delay_250ns(void)
{
	unsigned int i;
		for(i=0; i<30; i++);
}

目前能实现控制灯条流水效果,
但是这个延时函数有问题,感觉,延时一条代码的时间,实际却很长,
造成无论发0码还是1码,都显示为1码。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分