예제 #1
0
파일: led.c 프로젝트: NieHao/Tomato-RAF
uint32_t gpio_read(void)
{
	int f;
	uint32_t r;

	if ((f = gpio_open(0)) < 0) return ~0;
	r = _gpio_read(f);
	close(f);
	return r;
}
예제 #2
0
파일: led.c 프로젝트: NieHao/Tomato-RAF
uint32_t gpio_read(void)
{
	int f;
	uint32_t r;

	if ((f = open(DEV_GPIO(in), O_RDONLY)) < 0) return ~0;
	r = _gpio_read(f);
	close(f);
	return r;
}
예제 #3
0
파일: gpio.c 프로젝트: rainkid/bcwifi
int gpio_main(int argc, char *argv[])
{
    const char hex[] = "0123456789ABCDEF0123456789ABCDEF";
    unsigned long v;
    int bit;
    int i;
    char s[33];
    int f;

    if ((argc == 3) && ((strncmp(argv[1], "en", 2) == 0) || (strncmp(argv[1], "di", 2) == 0))) {
        bit = atoi(argv[2]);
        if ((bit >= 0) && (bit <= 20)) {
            bit = 1 << bit;
            {
                gpio_write(bit, argv[1][0] == 'e');
                return 0;
            }
        }
    }
    else if (argc >= 2) {
        if (strncmp(argv[1], "po", 2) == 0) {
            if (argc >= 3)
                bit = atoi(argv[2]);
            else
                bit = 0;
            printf("Enable gpio mask: 0x%04X\n", bit);

            if ((f = gpio_open(bit)) < 0) {
                printf("Failed to open gpio\n");
                return 0;
            }
            while ((v = _gpio_read(f)) != ~0) {
                for (i = 31; i >= 0; --i) {
                    s[i] = (v & (1 << i)) ? hex[i] : '.';
                }
                s[32] = 0;
                printf("%08lX %s\n", v, s);
                sleep(1);
            }
            close(f);
            return 0;
        }
    }

    usage_exit(argv[0], "<enable|disable|poll> <pin|[poll_mask]>\n");
}