summaryrefslogtreecommitdiff
path: root/n/asserv/src
diff options
context:
space:
mode:
Diffstat (limited to 'n/asserv/src')
-rw-r--r--n/asserv/src/counter.c2
-rw-r--r--n/asserv/src/main.c48
-rw-r--r--n/asserv/src/postrack.c3
-rw-r--r--n/asserv/src/pwm.c2
4 files changed, 28 insertions, 27 deletions
diff --git a/n/asserv/src/counter.c b/n/asserv/src/counter.c
index 46dc05a..7fcfac5 100644
--- a/n/asserv/src/counter.c
+++ b/n/asserv/src/counter.c
@@ -64,7 +64,7 @@ counter_init (void)
0, 0, 0, 0, 0, 1, 1, 1);
/* Right counter. */
/* Normal counter. */
- //TCCR3A = 0;
+ TCCR3A = 0;
/* External, rising edge. */
TCCR3B = regv (ICNC3, ICES3, 5, WGM33, WGM32, CS32, CS31, CS30,
0, 0, 0, 0, 0, 1, 1, 1);
diff --git a/n/asserv/src/main.c b/n/asserv/src/main.c
index 61ae706..3fed431 100644
--- a/n/asserv/src/main.c
+++ b/n/asserv/src/main.c
@@ -71,7 +71,7 @@ main_loop (void);
/* -AutoDec */
-/* Entry point. */
+/** Entry point. */
int
main (void)
{
@@ -88,7 +88,7 @@ main (void)
return 0;
}
-/* Main loop. */
+/** Main loop. */
static void
main_loop (void)
{
@@ -112,9 +112,21 @@ main_loop (void)
/* Pwm setup. */
pwm_update ();
/* Stats. */
+ if (motor_stat_counter && !--motor_stat_counter_cpt)
+ {
+ proto_send2w ('C', counter_left, counter_right);
+ motor_stat_counter_cpt = motor_stat_counter;
+ }
+ if (motor_stat_postrack && !--motor_stat_postrack_cpt)
+ {
+ proto_send1d ('X', postrack_x);
+ proto_send1d ('Y', postrack_y);
+ proto_send1d ('A', postrack_a);
+ motor_stat_postrack_cpt = motor_stat_postrack;
+ }
if (motor_stat_speed && !--motor_stat_speed_cpt)
{
- proto_send4w ('U', speed_left_e_old, speed_left_int,
+ proto_send4w ('S', speed_left_e_old, speed_left_int,
speed_right_e_old, speed_right_int);
motor_stat_speed_cpt = motor_stat_speed;
}
@@ -129,18 +141,6 @@ main_loop (void)
motor_timer_0);
motor_stat_timer_cpt = motor_stat_timer;
}
- if (motor_stat_counter && !--motor_stat_counter_cpt)
- {
- proto_send2w ('C', counter_left, counter_right);
- motor_stat_counter_cpt = motor_stat_counter;
- }
- if (motor_stat_postrack && !--motor_stat_postrack_cpt)
- {
- proto_send1d ('X', postrack_x);
- proto_send1d ('Y', postrack_y);
- proto_send1d ('A', postrack_a);
- motor_stat_postrack_cpt = motor_stat_postrack;
- }
/* Misc. */
if ((motor_loop_cpt & 7) == 0)
{
@@ -190,18 +190,20 @@ proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
case c ('f', 2):
postrack_set_footing (args[0] << 8 | args[1]);
break;
- case c ('m', 1):
- motor_stat_speed_cpt = motor_stat_speed = args[0];
- motor_stat_pwm_cpt = motor_stat_pwm = args[0];
- break;
- case c ('c', 1):
+ case c ('C', 1):
motor_stat_counter_cpt = motor_stat_counter = args[0];
break;
- case c ('t', 1):
- motor_stat_timer_cpt = motor_stat_timer = args[0];
+ case c ('X', 1):
+ motor_stat_postrack_cpt = motor_stat_postrack = args[0];
+ break;
+ case c ('S', 1):
+ motor_stat_speed_cpt = motor_stat_speed = args[0];
+ break;
+ case c ('W', 1):
+ motor_stat_pwm_cpt = motor_stat_pwm = args[0];
break;
case c ('T', 1):
- motor_stat_postrack_cpt = motor_stat_postrack = args[0];
+ motor_stat_timer_cpt = motor_stat_timer = args[0];
break;
default:
proto_send0 ('e');
diff --git a/n/asserv/src/postrack.c b/n/asserv/src/postrack.c
index 5adcb37..d7e6bc8 100644
--- a/n/asserv/src/postrack.c
+++ b/n/asserv/src/postrack.c
@@ -85,10 +85,9 @@ postrack_update (void)
dd = counter_right_diff - counter_left_diff; /* 10b */
dd <<= 16; /* 10.16b */
da = dsp_mul_f824 (dd, postrack_footing_factor);/* 8.24b */
- // XXX: this division is false because da is not radians !
/* New angle. */
na = postrack_a + da;
- /* da in radians. */
+ /* Compute da in radians. */
da = dsp_mul_f824 (da, 2 * M_PI * (1L << 24));
/* X increment. */
dsc = dsp_sin (na) - dsp_sin (postrack_a); /* 8.24b */
diff --git a/n/asserv/src/pwm.c b/n/asserv/src/pwm.c
index 883201f..a873b33 100644
--- a/n/asserv/src/pwm.c
+++ b/n/asserv/src/pwm.c
@@ -23,7 +23,7 @@
*
* }}} */
-/* PWM values. */
+/** PWM values. */
int16_t pwm_left, pwm_right;
/* +AutoDec */