CPi_readall.c 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. #include <wiringPi.h>
  5. #include "CPi.h"
  6. #ifdef CONFIG_CLOCKWORKPI_A04
  7. int bcmToGpioCPi[64] =
  8. {
  9. 106, 107, // 0, 1
  10. 104, 10, // 2, 3
  11. 3, 9, // 4 5
  12. 4, 90, // 6, 7
  13. 92, 158, // 8, 9
  14. 156, 105, //10,11
  15. 146, 150, //12,13
  16. 81, 80, //14,15
  17. 82, 83, //16,17
  18. 131, 132, //18,19
  19. 134, 135, //20,21
  20. 89, 88, //22,23
  21. 84, 85, //24,25
  22. 86, 87, //26,27
  23. 112, 113, //28,29
  24. 109, 157, //30,31
  25. 148, 147, //32,33
  26. 100, 101, //34,35
  27. 102, 103, //36,37
  28. 97, 98, //38,39
  29. 99, 96, //40,41
  30. 110, 111, //42,43
  31. 64, 65, //44,45
  32. -1, -1, //46,47
  33. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,// ... 63
  34. }
  35. #endif
  36. #ifdef CONFIG_CLOCKWORKPI_A06
  37. int bcmToGpioCPi[64] =
  38. {
  39. 106, 107, // 0, 1
  40. 104, 10, // 2, 3
  41. 3, 9, // 4 5
  42. 4, 90, // 6, 7
  43. 92, 158, // 8, 9
  44. 156, 105, //10,11
  45. 146, 150, //12,13
  46. 81, 80, //14,15
  47. 82, 83, //16,17
  48. 131, 132, //18,19
  49. 134, 135, //20,21
  50. 89, 88, //22,23
  51. 84, 85, //24,25
  52. 86, 87, //26,27
  53. 112, 113, //28,29
  54. 109, 157, //30,31
  55. 148, 147, //32,33
  56. 100, 101, //34,35
  57. 102, 103, //36,37
  58. 97, 98, //38,39
  59. 99, 96, //40,41
  60. 110, 111, //42,43
  61. 64, 65, //44,45
  62. -1, -1, //46,47
  63. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,// ... 63
  64. };
  65. #endif
  66. static char *alts [] =
  67. {
  68. "IN", "OUT", "ALT2", "ALT3", "ALT4", "ALT5", "ALT6", "OFF"
  69. } ;
  70. void CPiReadAll(void)
  71. {
  72. int pin, pin2;
  73. int tmp = wiringPiDebug;
  74. wiringPiDebug = FALSE;
  75. printf (" +-----+------+------+---+-----+------+------+---+\n");
  76. printf (" | BCM | GPIO | Mode | V | BCM | GPIO | Mode | V |\n");
  77. printf (" +-----+------+------+---+-----+------+------+---+\n");
  78. for (pin = 0 ; pin < 23; pin ++) {
  79. printf (" | %3d", pin);
  80. printf (" | %4d", bcmToGpioCPi[pin]);
  81. printf (" | %4s", alts [CPi_get_gpio_mode(bcmToGpioCPi[pin])]);
  82. printf (" | %d", CPi_digitalRead(bcmToGpioCPi[pin])) ;
  83. pin2 = pin + 23;
  84. printf (" | %3d", pin2);
  85. printf (" | %4d", bcmToGpioCPi[pin2]);
  86. printf (" | %4s", alts [CPi_get_gpio_mode(bcmToGpioCPi[pin2])]);
  87. printf (" | %d", CPi_digitalRead(bcmToGpioCPi[pin2])) ;
  88. printf (" |\n") ;
  89. }
  90. printf (" +-----+------+------+---+-----+------+------+---+\n");
  91. printf (" | BCM | GPIO | Mode | V | BCM | GPIO | Mode | V |\n");
  92. printf (" +-----+------+------+---+-----+------+------+---+\n");
  93. wiringPiDebug = tmp;
  94. }
  95. void CPiReadAllRaw(void)
  96. {
  97. int pin, pin2, i;
  98. int tmp = wiringPiDebug;
  99. wiringPiDebug = FALSE;
  100. printf (" +------+------+---+------+------+---+------+------+---+------+------+---+------+------+---+\n");
  101. printf (" | GPIO | Mode | V | GPIO | Mode | V | GPIO | Mode | V | GPIO | Mode | V | GPIO | Mode | V |\n");
  102. printf (" +------+------+---+------+------+---+------+------+---+------+------+---+------+------+---+\n");
  103. for (pin = 0 ; pin < 32; pin++) {
  104. pin2 = pin;
  105. for(i = 0; i < 5; i++) {
  106. printf (" | %4d", pin2) ;
  107. printf (" | %4s", alts [CPi_get_gpio_mode(pin2)]) ;
  108. printf (" | %d", CPi_digitalRead(pin2)) ;
  109. pin2 += 32;
  110. }
  111. printf (" |\n") ;
  112. }
  113. printf (" +------+------+---+------+------+---+------+------+---+------+------+---+------+------+---+\n");
  114. printf (" | GPIO | Mode | V | GPIO | Mode | V | GPIO | Mode | V | GPIO | Mode | V | GPIO | Mode | V |\n");
  115. printf (" +------+------+---+------+------+---+------+------+---+------+------+---+------+------+---+\n");
  116. wiringPiDebug = tmp;
  117. }