Skip to content
Snippets Groups Projects
Commit 4df6403e authored by Martin Vítek's avatar Martin Vítek
Browse files

Fixes of badly designed current measuring

- removed waiting_for_current_reversation()
- add double check of closing current
parent c583467a
Branches master
No related tags found
No related merge requests found
...@@ -29,7 +29,8 @@ static usart_regs uart_regs ...@@ -29,7 +29,8 @@ static usart_regs uart_regs
Controller::Controller(): servo(&DDRB, PB1, &OCR1A, blue_servo_data), Controller::Controller(): servo(&DDRB, PB1, &OCR1A, blue_servo_data),
adc(), adc(),
uart(uart_regs) uart(uart_regs),
count(0)
{ {
//Servo ini //Servo ini
TCCR1A |= (1<<COM1A1) | (1<<COM1B1) | (1<<WGM11); //Fast PWM non-inverted TCCR1A |= (1<<COM1A1) | (1<<COM1B1) | (1<<WGM11); //Fast PWM non-inverted
...@@ -85,9 +86,6 @@ void Controller::gate_handler() ...@@ -85,9 +86,6 @@ void Controller::gate_handler()
case WAITING_FOR_CLOSING_CURRENT: waiting_for_closing_current(); case WAITING_FOR_CLOSING_CURRENT: waiting_for_closing_current();
break; break;
case WAITING_FOR_CURRENT_REVERSATION: waiting_for_current_reversation();
break;
case WAITING_FOR_CURRENT_DROP: waiting_for_current_drop(); case WAITING_FOR_CURRENT_DROP: waiting_for_current_drop();
break; break;
...@@ -120,16 +118,20 @@ void Controller::waiting_for_closing_current() ...@@ -120,16 +118,20 @@ void Controller::waiting_for_closing_current()
{ {
if ((current_negative > ON_TRESHOLD) && (current_negative < 1020)) if ((current_negative > ON_TRESHOLD) && (current_negative < 1020))
{ {
gate_mode = WAITING_FOR_CURRENT_DROP; if (!count)
{
count++;
return;
}
else
{
count = 0;
gate_mode = WAITING_FOR_CURRENT_DROP;
}
} }
}
void Controller::waiting_for_current_reversation() else count = 0;
{
if (current_positive > ON_TRESHOLD)
{
gate_mode = WAITING_FOR_CURRENT_DROP;
}
} }
void Controller::waiting_for_current_drop() void Controller::waiting_for_current_drop()
...@@ -176,9 +178,6 @@ void Controller::print_debug() ...@@ -176,9 +178,6 @@ void Controller::print_debug()
case WAITING_FOR_CLOSING_CURRENT: uart.transmit_string("Waiting for closing current"); case WAITING_FOR_CLOSING_CURRENT: uart.transmit_string("Waiting for closing current");
break; break;
case WAITING_FOR_CURRENT_REVERSATION: uart.transmit_string("Waiting for current reversation");
break;
case WAITING_FOR_CURRENT_DROP: uart.transmit_string("Waiting for current drop"); case WAITING_FOR_CURRENT_DROP: uart.transmit_string("Waiting for current drop");
break; break;
......
...@@ -53,6 +53,7 @@ class Controller ...@@ -53,6 +53,7 @@ class Controller
private: private:
volatile uint16_t samples[SAMPLES_COUNT]; volatile uint16_t samples[SAMPLES_COUNT];
volatile uint8_t samples_item; volatile uint8_t samples_item;
uint8_t count;
public: public:
volatile uint16_t current_positive; volatile uint16_t current_positive;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment