Subversion Repositories FlightCtrl

Rev

Rev 1459 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1459 Rev 1460
Line 33... Line 33...
33
ISR(USART_RXC_vect) {
33
ISR(USART_RXC_vect) {
Line 34... Line 34...
34
 
34
 
Line 35... Line 35...
35
        if (rx_pos < RX_BUFFER_SZ) {
35
        if (rx_pos < RX_BUFFER_SZ) {
36
 
36
 
37
                uint8_t i = UDR;
37
                uint8_t i = UDR;
Line 38... Line 38...
38
               
38
 
Line 39... Line 39...
39
                uart_putchar(i);
39
                uart_putchar(i);
Line 46... Line 46...
46
                        rx_pos = 0;
46
                        rx_pos = 0;
Line 47... Line 47...
47
 
47
 
48
                        if (!strcasecmp(rx_buffer, "HELP")) {
48
                        if (!strcasecmp(rx_buffer, "HELP")) {
49
                                printf("DISPLAY                 Display servo settings\n"
49
                                printf("DISPLAY                 Display servo settings\n"
50
                                       "EXPORT                  Export srvo settings\n"
50
                                       "EXPORT                  Export srvo settings\n"
51
                                           "SET s=n,l,u             Set servo settings\n"
51
                                           "SET s=n[,l,u]           Set servo settings\n"
52
                                           "                            s = servo number (1-6)\n"
52
                                           "                            s = servo number (1-6)\n"
53
                                           "                            n = neutral position (0-255)\n"
53
                                           "                            n = neutral position (0-255)\n"
54
                                           "                            l = lower limit (0-255)\n"
54
                                           "                            l = lower limit (0-255)\n"
55
                                           "                            u = upper limit (0-255)\n"
55
                                           "                            u = upper limit (0-255)\n"
56
                                           "LOAD                    Load settings from eeprom\n"
56
                                           "LOAD                    Load settings from eeprom\n"
57
                                           "SAVE                    Write settings to eeprom\n");
57
                                           "SAVE                    Write settings to eeprom\n");
58
                        } else if (!strcasecmp(rx_buffer, "DISPLAY")) {
58
                        } else if (!strcasecmp(rx_buffer, "DISPLAY")) {
59
                                for(i = 0; i < 6; i++) {
59
                                for(i = 0; i < 6; i++) {
60
                                        printf("SERVO %d, NEUTRAL %d, LIMIT %d-%d\n",
60
                                        printf("SERVO %d, NEUTRAL %d, LIMIT %d-%d\n",
61
                                                (i + 1),
61
                                                (i + 1),
62
                                                (pwm_neutral_position[i]),
62
                                                (pwm_neutral_position[i]),
63
                                                (pwm_limit[i] & 0xff),
63
                                                (pwm_limit[i] & 0xff),
64
                                                (pwm_limit[i] >> 8)
64
                                                (pwm_limit[i] >> 8)
65
                                        );
65
                                        );
66
                                }
66
                                }
67
                        } else if (!strcasecmp(rx_buffer, "EXPORT")) {
67
                        } else if (!strcasecmp(rx_buffer, "EXPORT")) {
68
                                for(i = 0; i < 6; i++) {
68
                                for(i = 0; i < 6; i++) {
69
                                        printf("SET %d=%d,%d,%d\n",
69
                                        printf("SET %d=%d,%d,%d\n",
70
                                                (i + 1),
70
                                                (i + 1),
71
                                                (pwm_neutral_position[i]),
71
                                                (pwm_neutral_position[i]),
72
                                                (pwm_limit[i] & 0xff),
72
                                                (pwm_limit[i] & 0xff),
73
                                                (pwm_limit[i] >> 8)
73
                                                (pwm_limit[i] >> 8)
74
                                        );
74
                                        );
75
                                }
75
                                }
76
                        } else if (!strcasecmp(rx_buffer, "LOAD")) {
76
                        } else if (!strcasecmp(rx_buffer, "LOAD")) {
Line 103... Line 103...
103
                                                                                h = 0xff;
103
                                                                                h = 0xff;
104
                                                                        }
104
                                                                        }
105
                                                                }
105
                                                                }
106
                                                                pwm_limit[servo] = (h << 8) | l;
106
                                                                pwm_limit[servo] = (h << 8) | l;
107
                                                                i = servo;
107
                                                                i = servo;
108
                                                                printf("SERVO %d, NEUTRAL %d, LIMIT %d-%d\n",
108
                                                                printf("SERVO %d, NEUTRAL %d, LIMIT %d-%d\n",
109
                                                                        (i + 1),
109
                                                                        (i + 1),
110
                                                                        (pwm_neutral_position[i]),
110
                                                                        (pwm_neutral_position[i]),
111
                                                                        (pwm_limit[i] & 0xff),
111
                                                                        (pwm_limit[i] & 0xff),
112
                                                                        (pwm_limit[i] >> 8)
112
                                                                        (pwm_limit[i] >> 8)
113
                                                                );
113
                                                                );
114
                                                        }
114
                                                        }
115
                                                } else {
115
                                                } else {
116
                                                        printf("Invalid servo\n");
116
                                                        printf("Invalid servo\n");