Kernel::Kernel(){
// Value init for the arrays
- for( uint8_t i = 0; i < NUMBER_OF_DEFINED_EVENTS; i++ ){ this->hooks[i][0] = NULL; }
+ for( uint8_t i=0; i<NUMBER_OF_DEFINED_EVENTS; i++ ){
+ for( uint8_t index=0; index<32; index++ ){
+ this->hooks[i][index] = NULL;
+ }
+ }
// Config first, because we need the baud_rate setting before we start serial
this->config = new Config();
Digipot* digipot;
private:
- Module* hooks[NUMBER_OF_DEFINED_EVENTS][16]; // When a module asks to be called for a specific event ( a hook ), this is where that request is remembered
+ Module* hooks[NUMBER_OF_DEFINED_EVENTS][32]; // When a module asks to be called for a specific event ( a hook ), this is where that request is remembered
};
LPC_TIM0->MR0 += global_step_ticker->period;
}
+ if( LPC_TIM0->MR0 > 10000 ){ __debugbreak(); }
+
}
#pragma GCC pop_options
i++;
}
*/
-
- /*
+
+ /*
int i = 0;
while( i <= 60 ){
// Debug : launch file on startup
- message.message = "G1 X40 Y0 F9000";
+ message.message = "G1 X60 Y0 F12000";
message.stream = kernel->serial;
kernel->call_event(ON_CONSOLE_LINE_RECEIVED, &message );
- message.message = "G1 X40 Y1 F9000";
- message.stream = kernel->serial;
- kernel->call_event(ON_CONSOLE_LINE_RECEIVED, &message );
-
-
- message.message = "G1 X0 Y1 F9000";
- message.stream = kernel->serial;
- kernel->call_event(ON_CONSOLE_LINE_RECEIVED, &message );
-
-
- message.message = "G1 X0 Y0 F9000";
+ message.message = "G1 X0 Y0 F12000";
message.stream = kernel->serial;
kernel->call_event(ON_CONSOLE_LINE_RECEIVED, &message );
message.stream = kernel->serial;
kernel->call_event(ON_CONSOLE_LINE_RECEIVED, &message );
+
while(1){
kernel->call_event(ON_MAIN_LOOP);
kernel->call_event(ON_IDLE);
}
if( this->has_letter('M') ){
this->has_m = true;
- this->m = this->get_value('m');
+ this->m = this->get_value('M');
}else{
this->has_m = false;
}
using namespace std;
#include "libs/nuts_bolts.h"
+#include <mri.h>
+
+
Stepper* stepper;
uint32_t previous_step_count;
uint32_t skipped_speed_updates;
}
if(this->trapezoid_adjusted_rate < this->current_block->final_rate ) {
// this->kernel->streams->printf("final reached after %u when it should be %u\r\n", current_steps_completed, this->main_stepper->steps_to_move);
+ //if( this->current_block->final_rate == 0 ){
+ // __debugbreak();
+ //}
this->trapezoid_adjusted_rate = this->current_block->final_rate;
}
this->set_step_events_per_minute(this->trapezoid_adjusted_rate);
}
+#pragma GCC push_options
+#pragma GCC optimize ("O0")
+
+
void TemperatureControl::on_gcode_execute(void* argument){
Gcode* gcode = static_cast<Gcode*>(argument);
if( gcode->has_m){
}
}
+#pragma GCC pop_options
+
+
void TemperatureControl::set_desired_temperature(double desired_temperature){
this->desired_adc_value = this->temperature_to_adc_value(desired_temperature);
}