我是靠谱客的博主 能干自行车,最近开发中收集的这篇文章主要介绍6个RGB灯随机颜色---C代码实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

文章介绍

核心代码部分

总体代码部分


文章介绍

当时想到的一个还算有点儿意思的功能,如果是个人DIY的话感觉还算是比较炫的效果。关键是如何实现随机,每次几个灯随机颜色不能重复,存在重复就实际亮的灯数就不够了,我认为这是最核心的部分。

当时对动态内存分配有点儿兴趣,因为咱没用过。就在代码中添加这部分功能,可使用静态数组,也可选择动态内存分配。

但后来了解到动态内存需要有动态内存管理算法的配合使用,电脑上是有的,但单片机上就很可能没有了,动态内存管理需要自己实现,比如我前段时间写的:链栈的应用---内存池

我认为核心部分的代码,是我在网上看到的,不知道这算不算一种惰性,有一种想法先去网上搜搜资料,有现成的直接用或者稍微改改再用。我给自己的安慰:并不是目标重要还是什么重要,我的想法实现就是我的目标,如果时间太长估计自己都不想搞下去了,除非我有坚韧不拔的毅力。

核心代码部分

/**
 * find
 * @brief 与数组a中的前size个数进行比较,若有与key相同的,则返回0,若没有则返回1
 * @param a 数组元素首地址
 * @param size 数组元素个数
 * @param key  查找对比项
 */
uint8_t
find(uint8_t *a,uint8_t size, int key)
{
	for(uint8_t i=0; i < size; i++)
	{
		if(a[i] == key)
		{
			return 0;
		}
	}
	return 1;
}
/**
 * get_random_num_mutexes
 * @brief 	得到num个互不相同的数,覆盖掉数组中原有的数值
 * @param	array 数组元素首地址
 * @num		num  数组元素个数
 * @param	limit_val  随机数限制范围
 * @example	要得到42之内的6个随机数,写入到数组random_array
 * @example	get_random_num_mutexes(random_array, 6, 42)
 */
void
get_random_num_mutexes(uint8_t *array,uint8_t num, uint8_t limit_val)
{
	uint8_t random_val;
	for(uint8_t i = 0; i < num; i++)
	{
		random_val = rand() % limit_val;
		while(! find(array, i + 1, random_val))
		{
			random_val = rand() % limit_val;
		}
		array[i] = 

最后

以上就是能干自行车为你收集整理的6个RGB灯随机颜色---C代码实现的全部内容,希望文章能够帮你解决6个RGB灯随机颜色---C代码实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部