diff --git a/src/MPPT.c b/src/MPPT.c index fd0b2bd..ff1949c 100644 --- a/src/MPPT.c +++ b/src/MPPT.c @@ -87,7 +87,7 @@ void mppt_start(){ int16_t vermogenDiff, lastVermogen; while(1){ mppt_setPWM(duty); - if(state == bigStaps){ + if(state == bigStaps){ // big stap state - finding roughly the setpoint a bit faster or find the peek power point while(1){ // set stap if(mppt_vermogen - *(mppt_setpointP) > 0){ @@ -109,12 +109,13 @@ void mppt_start(){ if(vermogenDiff < 0) // get absolute value vermogenDiff = -vermogenDiff; + //TODO: don't let the peek power point detecten trigger if it oversoots or needs to ajust down. if(vermogenDiff < 50 || mppt_vermogen < lastVermogen){ state = smallStaps; break; } } - }else{ + }else{ // small stap state - aparanly it's close to the target. now get closer to it. while(1){ // set stap if(mppt_vermogen - *(mppt_setpointP) > 0){ @@ -136,11 +137,16 @@ void mppt_start(){ if(vermogenDiff < 0) // get absolute value vermogenDiff = -vermogenDiff; - if(vermogenDiff > 5){ + if(vermogenDiff > 50){ state = bigStaps; break; } + if(vermogenDiff > 5){ + break; + } + + // we reached the setpoint within 0.5 watts usleep(100E3); mppt_meetVermogen(); } diff --git a/src/communicatie.c b/src/communicatie.c index 31c8768..5be8ff1 100644 --- a/src/communicatie.c +++ b/src/communicatie.c @@ -49,13 +49,13 @@ void comm_init(){ // set data in the transmit buffer switch(TransmitBuffer[0]){ case SPIPARM_vermogen: - TransmitBuffer[1] = mppt_getVermogen(); + TransmitBuffer[2] = mppt_getVermogen(); break; case SPIPARM_snelheid: - TransmitBuffer[1] = comm_snelheid; + TransmitBuffer[2] = comm_snelheid; break; case SPIPARM_tempratuur: - TransmitBuffer[1] = noodstop_getTempratuur(); + TransmitBuffer[2] = noodstop_getTempratuur(); break; }