如何使用C语言遍历ARM AT91SAM7S256微控制器中的LED列表
我正在为ARM AT91SAM7S256微控制器编写代码。我正在尝试随机打开LED 到目前为止,我已经初始化了阵列中的LED 我的数组是如何使用C语言遍历ARM AT91SAM7S256微控制器中的LED列表,c,arm,embedded,microcontroller,C,Arm,Embedded,Microcontroller,我正在为ARM AT91SAM7S256微控制器编写代码。我正在尝试随机打开LED 到目前为止,我已经初始化了阵列中的LED 我的数组是 short leds [] = {LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8}; 用于设置led亮起的代码行为 SetLEDcolor(LEDNumber, RED); LEDNumber的值应随机来自阵列。能否以非随机方式打开/关闭每个LED?例如,通过延迟迭代数组。您使用什么操作系统或硬件抽象库?如果它
short leds [] = {LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8};
用于设置led亮起的代码行为
SetLEDcolor(LEDNumber, RED);
LEDNumber
的值应随机来自阵列。能否以非随机方式打开/关闭每个LED?例如,通过延迟迭代数组。您使用什么操作系统或硬件抽象库?如果它不是一个众所周知的操作系统,请显示(指向的链接)随机数生成器函数的描述。这样您就有了一个数组和一个函数。到目前为止你到底做了什么?LED是如何定义的?如何处理GPIO?确实,你能在没有随机性的情况下点亮LED吗?你是在问如何点亮LED灯还是如何实现随机化?这是有还是没有ASF?主机还是裸机?是的,这是在for循环中进行的。。。。但我需要数组中的一个随机值。。。例如,led7应该打开。。。。然后,当我再次尝试时,led3应该打开什么使您认为time()
可用于通用微控制器?通常没有可用的RTC,如果有,则必须使用自定义库来处理它。因为微控制器不是PC。因为在大多数微控制器上,time()。一种半好的方法是读取一些具有设备ID或芯片ID或设备修订版或类似版本的硬件寄存器,并将该值传递给srand
,以初始化伪随机生成器。
srand(time(NULL));
int ix = rand() % (sizeof(leds)/sizeof(*leds));
SetLEDcolor(leds[ix], RED);