Changed some comments
Added clock() Added stop for signalOutput Added calculation for booster and signalOutput for nextTick
This commit is contained in:
parent
aa6be9199c
commit
fb7fafa4be
@ -8,7 +8,7 @@
|
|||||||
* MController : AtMega328P
|
* MController : AtMega328P
|
||||||
* Board : Arduino Nano
|
* Board : Arduino Nano
|
||||||
*/
|
*/
|
||||||
#define F_CPU 16000000UL // Clock speed: 16 MHz - Maximum of AtMega328P
|
#define F_CPU 16000000UL // Clock speed: 16 MHz - Speed from onboard oscillator
|
||||||
|
|
||||||
// Macros
|
// Macros
|
||||||
#define bit_get(p,m) ((p) & (m))
|
#define bit_get(p,m) ((p) & (m))
|
||||||
@ -26,15 +26,15 @@
|
|||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
// Global variable declaration
|
// Global variable declaration
|
||||||
uint32_t currTick = 0; // Todo: Method/Interrupt to get the current-tick
|
uint16_t boost_frequency = 2000; // 2kHz frequency
|
||||||
|
|
||||||
bool boost_enable = false;
|
bool boost_enable = false;
|
||||||
bool boost_highVoltage_nextHigh = true;
|
bool boost_highVoltage_nextHigh = true;
|
||||||
uint32_t boost_highVoltage_nextTick = 0;
|
clock_t boost_highVoltage_nextTick = 0;
|
||||||
|
|
||||||
bool signalOutput_enable = false;
|
bool signalOutput_enable = false;
|
||||||
bool signalOutput_nextHigh = true;
|
bool signalOutput_nextHigh = true;
|
||||||
uint32_t signalOutput_nextTick = 0;
|
clock_t signalOutput_nextTick = 0;
|
||||||
|
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
@ -61,7 +61,7 @@ int main()
|
|||||||
// HighVoltage boosting
|
// HighVoltage boosting
|
||||||
if(boost_enable)
|
if(boost_enable)
|
||||||
{
|
{
|
||||||
if(currTick >= boost_highVoltage_nextTick) // If we are on or after the tick it should be executed
|
if(clock() >= boost_highVoltage_nextTick) // If we are on or after the tick it should be executed
|
||||||
{
|
{
|
||||||
// Set pin according to next exec
|
// Set pin according to next exec
|
||||||
if(boost_highVoltage_nextHigh) // Set it high
|
if(boost_highVoltage_nextHigh) // Set it high
|
||||||
@ -76,7 +76,7 @@ int main()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Calculate when next high/low should be set
|
// Calculate when next high/low should be set
|
||||||
boost_highVoltage_nextTick = currTick + 101 // Todo: Add calculation for pin high/low time
|
boost_highVoltage_nextTick = clock() + 1/(boost_frequency/2) // Half of time it should be high/low
|
||||||
}
|
}
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
@ -93,7 +93,7 @@ int main()
|
|||||||
// Signal output
|
// Signal output
|
||||||
if(signalOutput_enable)
|
if(signalOutput_enable)
|
||||||
{
|
{
|
||||||
if(currTick >= signalOutput_nextTick) // If we are on or after the tick it should be executed
|
if(clock() >= signalOutput_nextTick) // If we are on or after the tick it should be executed
|
||||||
{
|
{
|
||||||
// Set pin according to next exec
|
// Set pin according to next exec
|
||||||
if(signalOutput_nextHigh) // Set it high
|
if(signalOutput_nextHigh) // Set it high
|
||||||
@ -107,10 +107,12 @@ int main()
|
|||||||
bit_set(PD5, 0);
|
bit_set(PD5, 0);
|
||||||
bit_set(PD6, 0);
|
bit_set(PD6, 0);
|
||||||
signalOutput_nextHigh = true; // Next is high
|
signalOutput_nextHigh = true; // Next is high
|
||||||
|
|
||||||
|
signalOutput_enable = false; // Disable signalOutput
|
||||||
}
|
}
|
||||||
|
|
||||||
// When the signal should stop
|
// When the signal should stop
|
||||||
signalOutput_nextTick = currTick + 101 // Todo: Add calculation for signalOutput low time
|
signalOutput_nextTick = clock() + F_CPU * 0.2 // nextTick is in 0.2s
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user