Habe hier mal alle mir bekannten ungeklärten Punkte der Lib 2.11 zusammengefasst, und hoffe, dass demnächst eine Lib ohne Fragen und (weniger) Macken verfügbar ist:
uint16_t bot_supply
Versorgungsspannung des Roboters. Angabe unkorrigiert, als Wert zwischen 0 und 1023 Grobe Umrechnung: Ubatt = 0.0166 * bot_supply - 1.19;
Formel wäre zu korrigieren
uint8_t copro_ir_startMeasure ( )
uint8_t copro_ir_stop ( )
uint8_t copro_stop ( )
uint8_t copro_stopImmediate ( )
uint8_t copro_transmitRC5 ( uint16_t code)
Rückgabewerte, wozu?
uint8_t copro_setPositionParameters ( int8_t ki, int8_t kp, int8_t kd )
Achtung: Funktion ohne Funktion, gibt nur eine 1 zurück.
uint8_t copro_setPWM ( int16_t left, int16_t right )
PWM Werte für die beiden Motoren setzen. Die PWM Werte sind bei idealisierter Mechanik und Elektonik proportional zum Drehmoment.
Parameter:
Left Wert für linkes Rad (-1024 ... +1024)
Right Wert für rechets Rad (-1024 ... +1024)
Wozu dient diese Funktion?
uint8_t copro_setSpeedParameters ( int8_t ki, int8_t kp, int8_t kd )
Wie genau gehen ki, kp, kd in die Berechnung ein?
Was passiert bei Erhöhung oder Verringerung der Parameter?
Wie wird der Regler schärfer oder weicher eingestellt?
Sind im Schema des Wiki Ki und Kp vertauscht?
Auf was wirkt die Stellgröße?
Und wo und wann werden die Werte im Eprom gespeichert?
uint8_t copro_setTargetAbs/Rel ( int16_t left, int16_t right, uint16_t speed )
Rückgabewert? Speed Maxwert == 80!
Leider keine Kreiskurvenfahrt möglich mit „copro_setTargetAbs/Rel ( 200, 800, 40)“; Fährt 200 Ticks geradeaus und dann eine Linksdrehung.
uint8_t copro_ir_mode
Aktueller Modus des IR-Controllers . Welche Modi gibt’s?
40 Ticks entsprechen einer Radumdrehung.:
Wieviel Ticks sind für einen Vollkreis (nur ein Rad dreht) erforderlich oder für eine Drehung um 360Grad?
int16_t copro_current_l/r
Aktueller Strom in Milli-Ampere, der genaue Umrechnungsfaktor ist 1.0742
Hat hier schon mal jemand nachgemessen?
Zwar ist dem Eingang ein Tiefpass vorgeschaltet, aber es werden pulsierende (PWM-) Ströme erfasst. Und die PWM ist wieder davon Abhängig, was der Motor-PID gerade macht, bzw. von der Drehzahl/Speed.
void gfx_term_print_P ( PGM_P text)
die Funktion fehlt in der gfx.c.
void gfx_draw_mode ( uint8_t mode)
Dokumentation der DrawModi?
void leds_set_status_intensity(int light)
int leds_get_status_intensity()
Sind nicht dokumentiert.
uint16_t pwm_channel_A
uint16_t pwm_channel_B
Wofür sind diese Variaben gut?
Und was ist mit Channel_C?
uint16_t pwm_timer_ms
uint32_t pwm_timer_sec
Sollten als volatile deklariert werden, damit sie in Schleifen nicht wegoptimiert werden.
void sound_tone ( int interval, int time )
Ton für time ms abspielen, die Frequenz wird durch interval vorgegeben
-time in ms?
Frequenz = 50000/interval ?!
void uart0_enable()
Hier ist der Schaltplan unverständlich oder fehlerhaft?!
RXD und TXD sind doch mit den LEDs R0 und R1 verbunden, und zusätzlich mit dem ISP Anschluß als MISO und MOSI?
Wird der Mega128 über den PE0 und PE1 programmiert?
Wo können die Signale RxD und TxD angeschlossen werden?
uartx_tx/rx_empty/full in der HTML Dokumentation erwähnt, aber nicht beschrieben.