PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RN-Control 1.4 Fehler im C Beispielprogramm



Tredory
28.02.2012, 17:42
Hi Leute, ich habe jetzt mal Zeit gefunden ein wenig mit meinem RN-Control 1.4 rumzuprobieren. (liegt leider seit mittlerweile fast 2 Jahren unbenutzt in der Schublade ;).
Naja erstmal zu meinem Equipment:

Board: RN-Control 1.4
Programmieradapter: USB AVR LAB mit der USBASP Firmware (Mann, war das ein krampf das unter Win7 64bit endlich an toch zu bekommen)
Software:

Editor: Notepad++ (Mit Erweiterung NppExec um direkt daraus zu kompilieren und zu übertragen)
Compiler: avr-gcc (WinAVR)
Übertragung: Entweder per Notepad++ macro durch make program, oder aber mit "AVR Burn-O-Mat".

Ich habe bisher noch nichts ernstes mit Mikrocontrollern gemacht, C Kenntnisse sind aber vorhanden.
Was mir nun aufgefallen ist:
Ich habe mir natürlich erstmal die Beispielanwendungen von der RN CD angesehen und ausprobiert. Allerdings stoße ich da bei dem Beispiel für c irgendwie auf Ungereimtheiten.

Und zwar wird in der Headerdatei rncontrol.h die delay.h von WinAVR verwendet. Wenn ich mir nun die delay.h ansehe wird für die delay Funktionen das Symbol F_CPU für die berechnung benutzt.
und wenn das noch nicht existiert wird das in der delay.h mit 1Mhz initialisiert.
Jetzt frage ich mich warum ist dieses Symbol F_CPU nicht im Makefile vorhanden ?, denn dadurch das das fehlt passen die delay Zeiten natürlich nicht wenn der Atmega nicht mit 1mHz läuft.
Ich bin nun dazu übergegangen und habe mir mit dem beispiel Makefile von WinAVR ein eigenes Makefile erstellt, dort habe ich dann F_CPU mit 16Mhz eingetragen.
die Delay Zeiten passen dadurch jetzt, allerdings ist die Startmelody daraufhin unanhörbar ;) Eben weil die Sound funktion um diese verwendung mit F_CPU drumzugepfuscht ist ;)
Was mir dann noch auffällt, ist dass die delay Funktionen in der delay.h double werte entgegennehmen, allerdings die Sound funktion aus der rncontrol.h nur mit int werten arbeitet.
Ich hab mir diese nun so umgeschrieben, das sie auch double entgegennimmt und weitergibt. Dadurch können dann auch wesentlich höhere Frequenzen erzeugt werden.

Was mich daran eigendlich nur wundert ist, dass es das rn-control schon ewig gibt, ich aber zu diesem "versäumnis" nichts weiter im Internet gefunden habe, dass muss doch auch schon anderen aufgefallen sein ??
Vielleicht bin ich auch nur unfähig richtig zu Suchen ;)

Oder hat das vielleicht einen tieferen Sinn den ich nicht gesehen habe das das da so komisch aufgebaut ist ?

Jedenfalls bin ich jetzt erstmal froh das ich nach 1 1/2 Tagen Einricht-versuchen nun endlich soweit bin das das Programmieren und Flashen soweit Funktioniert.
Jetzt kann ich dann mal anfangen weiterzumachen.


mfg
Jens