实际上,我想在我的Linux设备中三次闪烁LED.
我可以通过编写1和0来简单地测试为 echo "1" > /dev/ipuc/ledd
我希望这是在C程序中,它最终像这样,我想避免这么多写.下面的代码是外行实现,write会有返回代码以获得更好的虚假证明.
码
static char *ledd = "/dev/ipuc/ledd";
int fd = -1;
if( (fd = open(ledd, O_RDWR ) ) == -1 )
{
perror( ledd );
}
write(fd, "1", 1);
write(fd, "0", 1);
write(fd, "1", 1);
write(fd, "0", 1);
write(fd, "1", 1);
write(fd, "0", 1);
Run Code Online (Sandbox Code Playgroud)
结合答案和评论:
char sequence[] = "1101001"; // Whatever sequence here
char *s = sequence;
while (*s)
{
write(fd, *s++, 1);
usleep(300000); // Or some other delay facility
}
Run Code Online (Sandbox Code Playgroud)
如果你只是想眨眼COUNT / 2
次:
unsigned int i;
for (i = 0; i < COUNT; i++)
{
write(fd, '0' + (i % 2), 1);
usleep(300000); // Or some other delay facility
}
Run Code Online (Sandbox Code Playgroud)
或者如果你想永远闪烁它:
unsigned int i = 0;
while(1)
{
i ^= 1; // Toggle LSB
write(fd, '0' + i, 1);
usleep(300000); // Or some other delay facility
}
Run Code Online (Sandbox Code Playgroud)