From ece09618548e4d0edd6acf776db54305d9e92393 Mon Sep 17 00:00:00 2001 From: Jan-Philipp Warmers Date: Sat, 17 May 2014 15:53:03 +0200 Subject: [PATCH 1/2] ports init OC1A and OC1B --- display/software/displayboard_servo/src/main.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/display/software/displayboard_servo/src/main.c b/display/software/displayboard_servo/src/main.c index dadaeba..cbef325 100644 --- a/display/software/displayboard_servo/src/main.c +++ b/display/software/displayboard_servo/src/main.c @@ -32,6 +32,8 @@ static void timer_init(void) { static void ports_init(void) { +DDRB |= (1< Date: Sat, 17 May 2014 23:42:44 +0200 Subject: [PATCH 2/2] working demo display --- display/software/displayboard_servo/Makefile | 2 +- .../software/displayboard_servo/src/main.c | 25 ++++++++++--------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/display/software/displayboard_servo/Makefile b/display/software/displayboard_servo/Makefile index 2c2f2e3..2de5850 100644 --- a/display/software/displayboard_servo/Makefile +++ b/display/software/displayboard_servo/Makefile @@ -75,7 +75,7 @@ LDFLAGS = -Wl,-Map=$(TARGET).map,--cref # Programming support using avrdude. Settings and variables. -AVRDUDE_PROGRAMMER = usbasp +AVRDUDE_PROGRAMMER = usbtiny AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex #AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep diff --git a/display/software/displayboard_servo/src/main.c b/display/software/displayboard_servo/src/main.c index cbef325..c5d81cf 100644 --- a/display/software/displayboard_servo/src/main.c +++ b/display/software/displayboard_servo/src/main.c @@ -89,24 +89,25 @@ static void set_servo(uint8_t power) { uint8_t display = 0; - display = power * 10; // shift, since we have to divide by 2,4 (24) - display = display / 24; // instead of dividing by 2,4 - display = display + 125; +// display = power * 10; // shift, since we have to divide by 2,4 (24) +// display = display / 24; // instead of dividing by 2,4 +// display = display + 125; + + display = power; OCR1A = 2500-display; } static void demo_display(void) { - - for(uint8_t i = 0; i< 30;i++) { + for(uint8_t i = 0; i< 30;i = i+1) { set_servo(i*10); - wait(5); + wait(100); } - for(uint8_t i = 30; i> 0;i--) { - set_servo(i*10); - wait(5); + for(uint8_t i = 10; i>= 0;i = i-1) { + set_servo(i*5); + wait(100); } } @@ -120,15 +121,15 @@ int main(void) { demo_display(); - while(1) { - work_uart(); +// while(1) { +// work_uart(); if(syscounter >= 10) { uart_putc('a'); // send a to receive values set_servo(power_gen); syscounter = 0; - } + //} } return(0);