Run checks on real hardware and fixed booster
Added onboard-led as output
This commit is contained in:
parent
6990bff184
commit
900874aeae
@ -20,7 +20,7 @@ uint16_t boost_frequency = 2000; // 2kHz frequency
|
|||||||
uint16_t signalOutput_time = 200; // 200ms
|
uint16_t signalOutput_time = 200; // 200ms
|
||||||
|
|
||||||
uint8_t boost_highVoltage_nextHigh = 1;
|
uint8_t boost_highVoltage_nextHigh = 1;
|
||||||
uint16_t boost_highVoltage_nextTick = 0;
|
uint16_t boost_highVoltage_nextTick = 1;
|
||||||
|
|
||||||
uint8_t signalOutput_nextHigh = 1;
|
uint8_t signalOutput_nextHigh = 1;
|
||||||
uint16_t signalOutput_nextTick = 0;
|
uint16_t signalOutput_nextTick = 0;
|
||||||
@ -42,6 +42,7 @@ int main()
|
|||||||
DDRD |= (1 << PORTD4);
|
DDRD |= (1 << PORTD4);
|
||||||
DDRD |= (1 << PORTD5);
|
DDRD |= (1 << PORTD5);
|
||||||
DDRD |= (1 << PORTD6);
|
DDRD |= (1 << PORTD6);
|
||||||
|
DDRB |= (1 << PORTB5); // Onboard-Led
|
||||||
|
|
||||||
// Interrupt for INT0 Pin-D2 High-voltage check
|
// Interrupt for INT0 Pin-D2 High-voltage check
|
||||||
EICRA |= (0 << ISC01)|(1 << ISC00); // On at any edge [Code: 01]
|
EICRA |= (0 << ISC01)|(1 << ISC00); // On at any edge [Code: 01]
|
||||||
@ -77,7 +78,7 @@ int main()
|
|||||||
PORTD |= (0 << PORTD4);
|
PORTD |= (0 << PORTD4);
|
||||||
boost_highVoltage_nextHigh = 1; // Next is high
|
boost_highVoltage_nextHigh = 1; // Next is high
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calculate when next high/low should be set
|
// Calculate when next high/low should be set
|
||||||
boost_highVoltage_nextTick = (uint16_t)TCNT1 + F_CPU/timer1_prescaler * 1/(boost_frequency/2); // Half of time it should be high/low
|
boost_highVoltage_nextTick = (uint16_t)TCNT1 + F_CPU/timer1_prescaler * 1/(boost_frequency/2); // Half of time it should be high/low
|
||||||
if(boost_highVoltage_nextTick == 0) boost_highVoltage_nextTick++; // If its 0, it stops, we dont want that
|
if(boost_highVoltage_nextTick == 0) boost_highVoltage_nextTick++; // If its 0, it stops, we dont want that
|
||||||
@ -159,12 +160,16 @@ ISR(INT0_vect)
|
|||||||
{
|
{
|
||||||
// Below ~400V, activate booster
|
// Below ~400V, activate booster
|
||||||
boost_highVoltage_nextTick = 1; // Run as soon as possible
|
boost_highVoltage_nextTick = 1; // Run as soon as possible
|
||||||
|
|
||||||
|
PORTB |= (1 << PORTB5); // Onboard-Led
|
||||||
}
|
}
|
||||||
else // Rising edge
|
else // Rising edge
|
||||||
{
|
{
|
||||||
// Reached ~400V, deactivate booster
|
// Reached ~400V, deactivate booster
|
||||||
boost_highVoltage_nextTick = 0;
|
boost_highVoltage_nextTick = 0;
|
||||||
|
|
||||||
|
PORTB |= (0 << PORTB5); // Onboard-Led
|
||||||
|
|
||||||
// reset state
|
// reset state
|
||||||
PORTD |= (0 << PORTD4); // pin on low
|
PORTD |= (0 << PORTD4); // pin on low
|
||||||
boost_highVoltage_nextHigh = 1; // next is high
|
boost_highVoltage_nextHigh = 1; // next is high
|
||||||
|
Loading…
x
Reference in New Issue
Block a user