No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

main.cpp 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. #include <Arduino.h>
  2. #include "config.h"
  3. #include "config_pins.h"
  4. #include "common.h"
  5. #include "encoder.h"
  6. #include "lcd.h"
  7. #include "steppers.h"
  8. #include "states.h"
  9. void setup() {
  10. pinMode(LED_PIN, OUTPUT);
  11. digitalWrite(LED_PIN, HIGH);
  12. pinMode(BEEPER, OUTPUT);
  13. blocking_beep(100, 1000);
  14. Serial.begin(115200);
  15. Serial.println(F("Initializing Fuellfix v2"));
  16. Serial.print(F("Version: "));
  17. Serial.println(FIRMWARE_VERSION);
  18. Serial.println(F("Init encoder"));
  19. encoder_init();
  20. Serial.println(F("Init LCD"));
  21. lcd_init();
  22. Serial.println(F("Init stepper motors"));
  23. steppers_init();
  24. // ----------------------------------
  25. Serial.println(F("XY:"));
  26. Serial.print(F("\t X: "));
  27. Serial.print(X_AXIS_MIN);
  28. Serial.print(F(" mm - "));
  29. Serial.print(X_AXIS_MAX);
  30. Serial.println(F(" mm"));
  31. Serial.print(F("\t Y: "));
  32. Serial.print(Y_AXIS_MIN);
  33. Serial.print(F(" mm - "));
  34. Serial.print(Y_AXIS_MAX);
  35. Serial.println(F(" mm"));
  36. Serial.print(F("\t"));
  37. Serial.print(XY_STEPS_PER_MM);
  38. Serial.println(F(" steps/mm"));
  39. Serial.print(F("\t"));
  40. Serial.print(XY_MAX_SPEED);
  41. Serial.println(F(" mm/s"));
  42. Serial.print(F("\t"));
  43. Serial.print(XY_MAX_ACCEL);
  44. Serial.println(F(" mm/s^2"));
  45. Serial.println();
  46. // ----------------------------------
  47. Serial.println(F("Z:"));
  48. Serial.print(F("\t"));
  49. Serial.print(Z_AXIS_MIN);
  50. Serial.print(F(" mm - "));
  51. Serial.print(Z_AXIS_MAX);
  52. Serial.println(F(" mm"));
  53. Serial.print(F("\t"));
  54. Serial.print(Z_STEPS_PER_MM);
  55. Serial.println(F(" steps/mm"));
  56. Serial.print(F("\t"));
  57. Serial.print(Z_MAX_SPEED);
  58. Serial.println(F(" mm/s"));
  59. Serial.print(F("\t"));
  60. Serial.print(Z_MAX_ACCEL);
  61. Serial.println(F(" mm/s^2"));
  62. Serial.println();
  63. // ----------------------------------
  64. Serial.println(F("E:"));
  65. Serial.print(F("\t"));
  66. Serial.print(E_AXIS_MIN);
  67. Serial.print(F(" mm - "));
  68. Serial.print(E_AXIS_MAX);
  69. Serial.println(F(" mm"));
  70. Serial.print(F("\t"));
  71. Serial.print(E_STEPS_PER_MM);
  72. Serial.println(F(" steps/mm"));
  73. Serial.print(F("\t"));
  74. Serial.print(E_MAX_SPEED);
  75. Serial.println(F(" mm/s"));
  76. Serial.print(F("\t"));
  77. Serial.print(E_MAX_ACCEL);
  78. Serial.println(F(" mm/s^2"));
  79. Serial.println();
  80. // ----------------------------------
  81. Serial.println(F("ready, showing splash screen"));
  82. digitalWrite(LED_PIN, LOW);
  83. blocking_beep(100, 2000);
  84. // wait some time to show splash screen
  85. delay(2000);
  86. Serial.println(F("Init state machine"));
  87. states_init();
  88. blocking_beep(100, 2000);
  89. Serial.println(F("starting main loop"));
  90. }
  91. void loop() {
  92. unsigned long t = millis();
  93. common_run(t);
  94. bool still_running = steppers_run();
  95. encoder_run();
  96. int click = encoder_click();
  97. int kill = kill_switch();
  98. if (click) {
  99. async_beep(ENCODER_CLICK_BEEP_TIME, ENCODER_CLICK_BEEP_FREQ);
  100. }
  101. struct StateMachineInput smi(click, encoder_change(), kill, !still_running);
  102. states_run(smi);
  103. }