diff --git a/src/config.h b/src/config.h index 190f448..553566d 100644 --- a/src/config.h +++ b/src/config.h @@ -9,7 +9,7 @@ #define MAX_COMMANDS 50 #define MAX_MODULES 10 #define MAX_ARGUMENT_LENGTH 20 //used in argument parsing, takes up ram - #define VERSION_STRING "Sangaboard Firmware v1.0-beta" + #define VERSION_STRING "Sangaboard Firmware v0.5.0" #define DEBUG_ON //module choice diff --git a/src/modules/illumination/illumination.cpp b/src/modules/illumination/illumination.cpp index e5b6c26..aa54eba 100644 --- a/src/modules/illumination/illumination.cpp +++ b/src/modules/illumination/illumination.cpp @@ -78,17 +78,62 @@ void illumination_setup() register_module(illumination_commands, NULL); } +#ifdef WIRING_CC_LED + +//these functions are useful testing +float multi_read(uint8_t pin, uint16_t reads) +{ + float total = 0; + for(uint16_t i = 0; i= 1.5 us - const uint8_t tup = 25; // 1-75 us - const uint8_t tdown = 230; //180-300us + char * args[1]; + parse_arguments(args, command, 1); + float val = atof(args[0]); - char * args[1]; - parse_arguments(args, command, 1); - float val = atof(args[0]); - free(args[0]); + free(args[0]); + cc_set_value(val); +} + +void cc_set_value(float val) +{ + #ifdef WIRING_CC_LED + if (val<0) + { + cc_test(); + return; + } + + const uint8_t td = 3; // >= 1.5 us + const uint8_t tup = 2; // 1-75 us + const uint8_t tdown = 180; //180-300us + const uint8_t tstart = 110; //100-150us //reset the device digitalWrite(WIRING_CC_LED, LOW); @@ -96,11 +141,11 @@ void cc_set(String command) return; uint8_t setting = val*32; - delayMicroseconds(650); + delayMicroseconds(650); //reset device //start sequence digitalWrite(WIRING_CC_LED, HIGH); - delayMicroseconds(130); + delayMicroseconds(tstart); uint8_t stepd = tup; uint8_t dir = 1; @@ -112,14 +157,16 @@ void cc_set(String command) } //step up + uint8_t steps_done =0; for (uint8_t i=16; i!=setting; i+=dir) { digitalWrite(WIRING_CC_LED, LOW); delayMicroseconds(stepd); digitalWrite(WIRING_CC_LED, HIGH); delayMicroseconds(td); - comPort->println("Stepping CC"); //TODO remove debug print + steps_done++; } + Serial.print(steps_done); #else comPort->println("CC LED not supported"); #endif diff --git a/src/modules/illumination/illumination.h b/src/modules/illumination/illumination.h index b00b9c6..2e4ae70 100644 --- a/src/modules/illumination/illumination.h +++ b/src/modules/illumination/illumination.h @@ -9,6 +9,8 @@ void illumination_pwm(String command); void illumination_pwm_freq(String command); void cc_set(String command); +void cc_set_value(float val); + void illumination_setup(); extern const Command illumination_commands[]; diff --git a/src/modules/stage/stage.cpp b/src/modules/stage/stage.cpp index fb84138..0ee6324 100644 --- a/src/modules/stage/stage.cpp +++ b/src/modules/stage/stage.cpp @@ -223,6 +223,9 @@ void stage_mr(String command) parse_arguments(args, command, 3); EACH_MOTOR { + if (i>3) + continue; + displacement[i] = atol(args[i]); free(args[i]); }