X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=main.c;h=5849b8bfe4b73f5a952d35c22bb69a6f9d8535c3;hb=7113aed0018e08706cf5fbfeb58a96ba87a84ef4;hp=4ff369da10e373e3226c613615bb7c6b654833bc;hpb=fe3e355d9a8cf8278c53cbb1ad4c375f76e4a38d;p=protos%2Frc_servos.git diff --git a/main.c b/main.c index 4ff369d..5849b8b 100644 --- a/main.c +++ b/main.c @@ -141,7 +141,7 @@ static void do_one_servo(struct servo *s) //portval = PORTC | (1 << s->bit); portval = (1 << s->bit); t = TCNT1; - load_timer_at(t + 150); + load_timer_at(t + 20); while (done == 0) poll_spi(); @@ -149,7 +149,7 @@ static void do_one_servo(struct servo *s) done = 0; portval = 0; //portval = PORTC & (~(1 << s->bit)); - load_timer_at(t + 150 + 8000 + s->command * 8); + load_timer_at(t + 20 + 1000 + s->command); while (done == 0) poll_spi(); } @@ -158,6 +158,7 @@ int main(void) { uint8_t i; uint8_t t, diff; + uint8_t tmp; /* LED */ DDRB = 0x02; @@ -174,9 +175,9 @@ int main(void) /* servo outputs PD2-PD7 */ DDRD = 0xfc; - /* start timer1 at clk/1 (8Mhz) */ + /* start timer1 at clk/8 (1Mhz) */ TCNT1 = 0; - TCCR1B = _BV(CS10); + TCCR1B = _BV(CS11); /* start timer0 at clk/1024 (~8Khz) */ TCNT0 = 0; @@ -201,12 +202,18 @@ int main(void) poll_spi(); } /* bypass mode */ - while (bypass == 1) { + if (bypass == 1) { LED_ON(); - PORTD = (PINC & 0x3f) << 2; - poll_spi(); + + while (bypass == 1) { + tmp = PINC; + tmp &= 0x3f; + tmp <<= 2; + PORTD = tmp; + poll_spi(); + } + LED_OFF(); } - LED_OFF(); } return 0;