25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
926B

  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. i = 0;
  13. }
  14. void loop() {
  15. checkOverflow(i);
  16. bitCheck(i);
  17. i++;
  18. delay(100);
  19. }
  20. /*
  21. * Takes an int and sets leds on and off accordingly
  22. * @param i The current value to be displayed
  23. */
  24. void bitCheck(int i){
  25. if (i & 1){
  26. digitalWrite(13, HIGH);
  27. }
  28. else{
  29. digitalWrite(13, LOW);
  30. }
  31. if (i & 2){
  32. digitalWrite(12, HIGH);
  33. }
  34. else{
  35. digitalWrite(12, LOW);
  36. }
  37. if (i & 4){
  38. digitalWrite(11, HIGH);
  39. }
  40. else{
  41. digitalWrite(11, LOW);
  42. }
  43. if (i & 8){
  44. digitalWrite(10, HIGH);
  45. }
  46. else{
  47. digitalWrite(10, LOW);
  48. }
  49. }
  50. /*
  51. * Checks to make sure the number displayed doesnt overflow
  52. * @param i The number to check overflow
  53. */
  54. void checkOverflow(int i){
  55. if (i == 16){
  56. i = 0;
  57. }
  58. if (i == -1){
  59. i = 15;
  60. }
  61. }