Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

77 lines
1.1KB

  1. /*
  2. *@author James McKenzie
  3. *@lang C89 Based
  4. *@contact lunarised@outlook.com
  5. */
  6. int i;
  7. void setup() {
  8. pinMode(10, OUTPUT);
  9. pinMode(11, OUTPUT);
  10. pinMode(12, OUTPUT);
  11. pinMode(13, OUTPUT);
  12. pinMode(0, INPUT_PULLUP);
  13. pinMode(1, INPUT_PULLUP);
  14. i = 0;
  15. }
  16. void loop() {
  17. checkOverflow(i);
  18. bitCheck(i);
  19. inCheck();
  20. }
  21. /*
  22. * Checks for button inputs on pins 0 and 1
  23. */
  24. void inCheck(){
  25. if (digitalRead(0)==LOW){
  26. i++;
  27. delay(250);
  28. }
  29. if (digitalRead(1)==LOW){
  30. i--;
  31. delay(250);
  32. }
  33. }
  34. /*
  35. * Takes an int and sets leds on and off accordingly
  36. * @param i The current value to be displayed
  37. */
  38. void bitCheck(int i){
  39. if (i & 1){
  40. digitalWrite(13, HIGH);
  41. }
  42. else{
  43. digitalWrite(13, LOW);
  44. }
  45. if (i & 2){
  46. digitalWrite(12, HIGH);
  47. }
  48. else{
  49. digitalWrite(12, LOW);
  50. }
  51. if (i & 4){
  52. digitalWrite(11, HIGH);
  53. }
  54. else{
  55. digitalWrite(11, LOW);
  56. }
  57. if (i & 8){
  58. digitalWrite(10, HIGH);
  59. }
  60. else{
  61. digitalWrite(10, LOW);
  62. }
  63. }
  64. /*
  65. * Checks to make sure the number displayed doesnt overflow
  66. * @param i The number to check overflow
  67. */
  68. void checkOverflow(int i){
  69. if (i == 16){
  70. i = 0;
  71. }
  72. if (i == -1){
  73. i = 15;
  74. }
  75. }