Disabled external gits
This commit is contained in:
69
cs309-psoc/lab_1_1/sw/nios/application/app.c
Normal file
69
cs309-psoc/lab_1_1/sw/nios/application/app.c
Normal file
@@ -0,0 +1,69 @@
|
||||
#include <stdlib.h>
|
||||
#include <io.h>
|
||||
#include <stdio.h>
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "pantilt/pantilt.h"
|
||||
#include "system.h"
|
||||
|
||||
#define SLEEP_DURATION_US (25000) // 25 ms
|
||||
#define PANTILT_STEP_US (25) // 25 us
|
||||
|
||||
#define PANTILT_PWM_V_CENTER_DUTY_CYCLE_US ((PANTILT_PWM_V_MIN_DUTY_CYCLE_US + PANTILT_PWM_V_MAX_DUTY_CYCLE_US) / 2)
|
||||
#define PANTILT_PWM_H_CENTER_DUTY_CYCLE_US ((PANTILT_PWM_H_MIN_DUTY_CYCLE_US + PANTILT_PWM_H_MAX_DUTY_CYCLE_US) / 2)
|
||||
|
||||
int main(void) {
|
||||
// Hardware control structures
|
||||
pantilt_dev pantilt = pantilt_inst((void *) PWM_0_BASE, (void *) PWM_1_BASE);
|
||||
|
||||
// Initialize hardware
|
||||
pantilt_init(&pantilt);
|
||||
|
||||
// Center servos.
|
||||
pantilt_configure_vertical(&pantilt, PANTILT_PWM_V_MIN_DUTY_CYCLE_US);
|
||||
pantilt_configure_horizontal(&pantilt, PANTILT_PWM_H_MIN_DUTY_CYCLE_US);
|
||||
pantilt_start_vertical(&pantilt);
|
||||
pantilt_start_horizontal(&pantilt);
|
||||
|
||||
// Rotate servos in "square" motion
|
||||
while (true) {
|
||||
uint32_t v_duty_us = 0;
|
||||
uint32_t h_duty_us = 0;
|
||||
|
||||
// bottom to top
|
||||
v_duty_us = PANTILT_PWM_V_MIN_DUTY_CYCLE_US;
|
||||
do {
|
||||
pantilt_configure_vertical(&pantilt, v_duty_us);
|
||||
v_duty_us += PANTILT_STEP_US;
|
||||
usleep(SLEEP_DURATION_US);
|
||||
} while (v_duty_us <= PANTILT_PWM_V_MAX_DUTY_CYCLE_US);
|
||||
|
||||
// left to right
|
||||
h_duty_us = PANTILT_PWM_H_MIN_DUTY_CYCLE_US;
|
||||
do {
|
||||
pantilt_configure_horizontal(&pantilt, h_duty_us);
|
||||
h_duty_us += PANTILT_STEP_US;
|
||||
usleep(SLEEP_DURATION_US);
|
||||
} while (h_duty_us <= PANTILT_PWM_H_MAX_DUTY_CYCLE_US);
|
||||
|
||||
// top to bottom
|
||||
v_duty_us = PANTILT_PWM_V_MAX_DUTY_CYCLE_US;
|
||||
do {
|
||||
pantilt_configure_vertical(&pantilt, v_duty_us);
|
||||
v_duty_us -= PANTILT_STEP_US;
|
||||
usleep(SLEEP_DURATION_US);
|
||||
} while (PANTILT_PWM_V_MIN_DUTY_CYCLE_US <= v_duty_us);
|
||||
|
||||
// left to right
|
||||
h_duty_us = PANTILT_PWM_H_MAX_DUTY_CYCLE_US;
|
||||
do {
|
||||
pantilt_configure_horizontal(&pantilt, h_duty_us);
|
||||
h_duty_us -= PANTILT_STEP_US;
|
||||
usleep(SLEEP_DURATION_US);
|
||||
} while (PANTILT_PWM_H_MIN_DUTY_CYCLE_US <= h_duty_us);
|
||||
}
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
Reference in New Issue
Block a user