void t8() { int v, t, i; printf("Bank read/write tests.\n"); gpio_write(GPIO, 0); v = read_bank_1() & (1<<GPIO); CHECK(8, 1, v, 0, 0, "read bank 1"); gpio_write(GPIO, 1); v = read_bank_1() & (1<<GPIO); CHECK(8, 2, v, (1<<GPIO), 0, "read bank 1"); clear_bank_1(1<<GPIO); v = gpio_read(GPIO); CHECK(8, 3, v, 0, 0, "clear bank 1"); set_bank_1(1<<GPIO); v = gpio_read(GPIO); CHECK(8, 4, v, 1, 0, "set bank 1"); t = 0; v = (1<<16); for (i=0; i<100; i++) { if (read_bank_2() & v) t++; }; CHECK(8, 5, t, 60, 75, "read bank 2"); v = clear_bank_2(0); CHECK(8, 6, v, 0, 0, "clear bank 2"); v = clear_bank_2(0xffffff); CHECK(8, 7, v, PI_SOME_PERMITTED, 0, "clear bank 2"); v = set_bank_2(0); CHECK(8, 8, v, 0, 0, "set bank 2"); v = set_bank_2(0xffffff); CHECK(8, 9, v, PI_SOME_PERMITTED, 0, "set bank 2"); }
void t8(int pi) { int v; printf("Bank read/write tests.\n"); gpio_write(pi, GPIO, 0); v = read_bank_1(pi) & (1<<GPIO); CHECK(8, 1, v, 0, 0, "read bank 1"); gpio_write(pi, GPIO, 1); v = read_bank_1(pi) & (1<<GPIO); CHECK(8, 2, v, (1<<GPIO), 0, "read bank 1"); clear_bank_1(pi, 1<<GPIO); v = gpio_read(pi, GPIO); CHECK(8, 3, v, 0, 0, "clear bank 1"); set_bank_1(pi, 1<<GPIO); v = gpio_read(pi, GPIO); CHECK(8, 4, v, 1, 0, "set bank 1"); v = read_bank_2(pi); if (v) v = 0; else v = 1; CHECK(8, 5, v, 0, 0, "read bank 2"); v = clear_bank_2(pi, 0); CHECK(8, 6, v, 0, 0, "clear bank 2"); v = clear_bank_2(pi, 0xffffff); CHECK(8, 7, v, PI_SOME_PERMITTED, 0, "clear bank 2"); v = set_bank_2(pi, 0); CHECK(8, 8, v, 0, 0, "set bank 2"); v = set_bank_2(pi, 0xffffff); CHECK(8, 9, v, PI_SOME_PERMITTED, 0, "set bank 2"); }