Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,
ich habe an den Asuro-Libs weitergearbeitet (und möchte mich hiermit zur weiteren Mitarbeit anmelden).
Meine Änderungen im Detail - viel Text ;-)
- Weiterentwicklung der interruptgesteuerten ADC-Auswertung: die habe ich so erweitert, dass eine beliebige Reihenfolge der ADC-Kanäle in einer Liste definiert werden kann. Diese Liste wird dann interruptgesteuert abgearbeitet und die gemessenen Werte in globale Variable geschrieben, sodass sie überall im Code zur Verfügung stehen.
Die Idee dahinter: auf lange Sicht möchte ich dem kleinen Kerl doch noch eine Odometrie verpassen, zugleich soll er wissen, wie weit er einer Linie schon gefolgt ist, also abwechslend Liniensensor und Odosensoren auswerten. Mit der überarbeiteten ADC-Auswertung kann nun flexibel eine Reihenfolge der Kanalauswertung erfolgen. Wer das nicht braucht, kann über einen #define zur originalen stochri/weja-Auswertung wechseln. Oder er macht sich eine ganz kurze Konfigliste nur mit den Odo-Kanälen.
Um auf meinem Firmenlaptop mit Visual C++ Asuro-Funktionen entwickeln zu können (geniales Debugging), habe ich die Dateistruktur etwas modifiziert: es gibt zusätzlich zu Asuro. c und Asuro.h nun eine "globals.h", in der auf globale Variable und #defines Bezug genommen wird, z. B. auch #defines für die bedingte Kompilierung. Durch #include "globals.h" sind sofort alle asurospezifischen Variablen und #defines verfügbar. In der Asuro.h verblieben sind die defines, die sich direkt auf die Hardware beziehen.
Eine Datei "Tools.c/h" - enthält zunächst einmal zwei Funktionen, um unsigned chars/ signed ints zu begrenzen (saturate). Vielleicht hat ja noch jemand andere Tool-Funktionen, die ließen sich hier hervorragend sammeln und im sourceforge weiterentwickeln.
Code aufgeräumt: um die ADC-Funktion von stochri und weja zu begreifen, habe ich sie erstmal kommentiert und atmega8-Doku gelesen. Uff! Außerdem habe ich dann Funktionen, die ich nicht brauche, hinter einen #ifdef geschoben. Der zugehörige #define steckt wiederum in der globals.h.
Eine neue Funktion "go_rakke", die stochris Funktion "go" nachempfunden ist. Hier unterteilt sich das Fahren in mehrere Abschnitte: Anfahren, beschleunigen, Konstantfahrt, bremsen und 'rankriechen. Alles parametrierbar und halbwegs modular aufgebaut. Die Funktion benutzt "trq_ctrl", eine weitere Funktion, die ich auch noch für eine Drehfunktion analog zum "turn" einsetzen möchte.
Die ganze Chose habe ich getestet, soweit es ging - bei mir sieht's gut aus. Über Rückmeldungen zur Verwendbarkeit und Fehlerbehaftung würde ich mich natürlich freuen. Anbei ein Paket mit meinen Dateien inklusive makefile.Alaaf,
Rakke