.log_col=0,
.doLogs=0,
.alpha_offset=960,
- .main_commutator=zero_commutator /*komutace vypnuta*/
+ .main_commutator=zero_commutator, /* komutace vypnuta */
+ .main_controller=zero_controller /*rizeni vypnuto */
};
/**
* \brief Initilizes GPCLK.
*/
-int clk_init()
-{
+int clk_init(){
initialise(); /*namapovani gpio*/
initClock(PLLD_500_MHZ, 10, 0);
gpioSetMode(4, FSEL_ALT0);
/*
* \brief
* Feedback loop.
- * TODO: replace bunch of 'IFs' with Object-like pattern
*/
void * control_loop(void* param){
int i;
uint16_t last_index; /*we have index up-to date*/
spi_read(&poc); /*pocatecni informace*/
clock_gettime(CLOCK_MONOTONIC ,&t);
- /* start after one second */
- t.tv_sec++;
while(1){
/* wait until next shot */
clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME, &t, NULL);
}
/* pocitame sirku plneni podle potreb rizeni*/
- if (rps.pos_reg_ena){ /*pozicni rizeni*/
- pos_pid(&rps);
- }else if(rps.spd_reg_ena){ /*rizeni na rychlost*/
- spd_pid(&rps);
- }
+ rps.main_controller(&rps);
/* sirku plneni prepocteme na jednotlive pwm */
rps.main_commutator(&rps);