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

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