Hiho!
Ich habe grad das RN-Control Board vor mir, hab zwei LEGO Motoren angeschlossen und das auf dem Board schon aufgespielte Testprogramm erfolgreich alles abolvieren lassen.
Nun wollte ich selber anfangen mein Proggi zu schreiben und habe eine ordentliche Makefile irgendwo ausgegraben (auf jeden Fall funktioniert sie) und mit avr-gcc das C testprogramm der Wiki (https://www.roboternetz.de/wissen/in...oprogramm_in_C) kompiliert und erfolgreich überspielt.
Dieses funktioniert auch einwandfrei (dioden leuchten, sensordaten werden über RS232 übertragen) und genauso wie das schon zuvor vorhandene Programm bis auf eine Sache: die Motoren drehen nicht langsam hoch und dann wieder runter sondern gehen auf voller geschwindigkeit an und dann nach einigen sekunden wieder aus.
Nach ein bisschen rumgespiele im code fand ich heraus, dass OCR1BL und OCR1AL, die ja sonst in einer for schleife von 0 bis 255 gezählt werden, nur dann die motoren mit weniger als dem maximum versorgen, wenn ihre werte so unter 10 liegen!
Bei 1 und 2 tut sich gar nichts, dann wird er schneller und bei 9 oder 10 haben beide motoren ihre volle geschwindigkeit erreicht.
An der Hardware kann es nicht liegen, denn die blieb ja die gleiche wie bei der original software.

Gibt es irgendwo das hex der originalen software damit ich das nochmal mit der ausprobieren kann um sicher zu gehen, dass es ein software problem ist?
Da der wikiartikel genau für dieses Board geschrieben wurde und sicher schon hundertmal ausprobiert wurde ist er sicher weitestgehend von solch dummen fehlern befreit. Also muss es an etwas anderem liegen - kann es an der makefile liegen? In der habe ich eigentlich immer den korrekten wert meines quartz (16MHz) eingestellt.
Gibt es irgendwo eine gute makefile die ich ausprobieren kann? Auf einen Makefile artikel wird in der Wiki viel verlinkt - ein solcher existiert aber nicht.