1
0
mirror of git://projects.qi-hardware.com/antorcha.git synced 2024-11-01 09:24:05 +02:00

fw/antorcha.c: add backward sweep

This commit is contained in:
Werner Almesberger 2012-06-25 11:37:16 -03:00
parent 00180fb287
commit cb846be507

View File

@ -24,7 +24,7 @@
#include "io.h" #include "io.h"
static struct sweep sweep = { static struct sweep fwd_sweep = {
.pixel_ticks = 1100, /* 1.1 ms */ .pixel_ticks = 1100, /* 1.1 ms */
.left = 0, .left = 0,
.right = MAX_LINES-1, .right = MAX_LINES-1,
@ -32,6 +32,14 @@ static struct sweep sweep = {
}; };
static struct sweep bwd_sweep = {
.pixel_ticks = 1100, /* 1.1 ms */
.left = 0,
.right = MAX_LINES-1,
.forward = 0,
};
static volatile enum sync_state { static volatile enum sync_state {
IDLE, /* undecided */ IDLE, /* undecided */
BWD, /* backward sweep */ BWD, /* backward sweep */
@ -94,7 +102,7 @@ static void sync_sweep(bool x, uint16_t v)
break; break;
tR0 = t; tR0 = t;
state = RIGHT; state = RIGHT;
// wake = 1; wake = 1;
break; break;
} }
} }
@ -105,11 +113,18 @@ static void submit_fwd_sweep(void)
#if 0 #if 0
uint32_t tIMG; uint32_t tIMG;
tIMG = (sweep.right-sweep.left+1)*(sweep.pixel_ticks)/2; tIMG = (fwd_sweep.right-fwd_sweep.left+1)*(fwd_sweep.pixel_ticks)/2;
sweep.start_ticks = tL0+110000-tIMG/2; fwd_sweep.start_ticks = tL0+110000-tIMG/2;
#endif #endif
sweep.start_ticks = uptime()+70000; fwd_sweep.start_ticks = tL0+70000;
sweep_image(&sweep); sweep_image(&fwd_sweep);
}
static void submit_bwd_sweep(void)
{
bwd_sweep.start_ticks = tR0+50000;
sweep_image(&bwd_sweep);
} }
@ -144,6 +159,8 @@ sei();
wake = 0; wake = 0;
if (state == LEFT) if (state == LEFT)
submit_fwd_sweep(); submit_fwd_sweep();
else if (state == RIGHT)
submit_bwd_sweep();
} }
} }
} }