PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SerPrint funktioniert nicht



Jack aus BW
21.01.2011, 21:13
Hallo Leute, nachdem mein letztes Problem https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=57334&highlight= gelöst zu sein schien, hab ich jetzt das nächste. Der Befehl SerPrint verursacht eine Fehlermeldung. Ich nutze AsuroFlash von Osser. Da das Programm nicht richtig funktioniert hat, bin ich folgendermassen vorgegangen: 1. alle Dateien aus einem funktionierenden Projekt in ein neues Verzeichnis kopiert 2. die Datei test.c gelöscht 3. eine eigene test.c Datei in das Verzeichnis kopiert 4. compiliert. Das hat funktioniert. Jetzt wollte ich das mal mit einer Datei machen, die den Befehl SerPrint enthält, und ich erhalte wieder 3 Fehlermeldungen.

Hat jemand eine Idee was bei mir falsch läuft?

Ich hänge das Projekt und die Fehlermeldungen mal an

markusj
21.01.2011, 22:41
Such Mal schön SerPrint in der von dir verwendeten ASURO-Bibliothek.

Oder lass es bleiben und nimm eine der "Richtigen", denn die von dir verwendete Bibliothek KENNT SerPrint nicht.

mfG
Markus

Jack aus BW
23.01.2011, 18:26
Servus Markus, danke für den Tip, aber wo bekomme ich denn die "richtige" Asuro Bibliothek? Ich hab AsuroFlasch 1.8.13.110 installiert. Von da hab ich auch die Datei test.c rauskopiert, die wollte ich eigentlich zu Übungszwecken mal etwas modifizieren.

markusj
23.01.2011, 18:57
Also zumindest bei meinem ASURO war ein Handbuch dabei - Da stand auch was bezüglich Toolchain und Bibliothek.
Dann gibt es noch das asurowiki als weitere Informationsquelle und ganz davon abgesehen, die TOP-Beiträge in diesem Subforum ...

Variante a) Die Bibliothek auf der ASURO-CD, ist nur "leicht" veraltet
Variante b) Die verbesserte Version (im Roboternetz weiterentwickelt) der Originalbibliothek, Link siehe Asurowiki
Variante c) Eine von diversen anderen Bibliotheken (wie du sie verwendest). Was da an Funktionsumfang nicht dabei ist, musst du aber selbst Programmieren ... In diese Kategorie fällt auch meine (https://www.roboternetz.de/phpBB2/viewtopic.php?t=55941) Bibliothek

Edit: Die von dir verwendete Bibliothek baut wohl auf einer älteren Version der RN-Bibliothek auf, die von dir gesuchte Funktion nennt sich nicht SerPrint sondern SerWrite!

mfG
Markus

Edit: Sorry weil mein Ton im vorherigen Post etwas "pampig" war, aber manchmal reicht es einfach, in Handbuch/Doku oder Quelltext zu sehen um festzustellen warum etwas nicht funktioniert.

Jack aus BW
24.01.2011, 22:53
Servus Markus, Servus Rest der Welt,

@markus: Ich hab deinen pampigen Ton ja garnicht bemerkt, das kann ich schon verkraften. Aber ich bin leider kein Informatikstudent und tu mich etwas schwer damit, das hier alles richtig zu verstehen.

Ich habe heute mal die Asuro-Lib-v280rc1 mit der Version die ich installiert habe, verglichen, die Versionen sind identisch. Ich gehe doch davon aus, daß die Version Asuro-Lib-v280rc1 die aktuelle und auch die "richtige" ist. Stimmt das?? Ich habe die Versionv280rc1 trotzdem mal entpackt und nochmal über die vorhandene Version drüberkopiert.

Die Felermeldungen danach waren dieselben.

Ich weiss noch nicht ob ich alles richtig verstanden habe: Das Programm AsuroFlash ruft beim compilieren dann das Programm WinAVR20100110 auf um die Dateien test.c asuro.h und asuro.c zu kompilieren. Greift WinAVR2010110 dann auf die AsuroLib zu?? oder wie funktioniert das?

Für mich sieht es so aus, als ob die Asuro-Lib nicht gefunden wird, oder ist der Befehl SerPrint, der mir ja als Warnung und als Fehler angegeben wird tatsächlich nicht in der AsuroLib-v280rc1 vorhanden???

Noch etwas, womit ich nichts anfangen kann: der Pfad AF_ASM_SRC_FILES ist bei mir in AsuroFlash nicht gesetzt. Wie wird der Pfad normalerweise gesetzt? Ist es Ok, wenn da nichts steht?

markusj
25.01.2011, 11:18
Zu deiner Fehlermeldung

[...] die von dir gesuchte Funktion nennt sich nicht SerPrint sondern SerWrite!
Über AsuroFlash kann ich nichts sagen, aber bezüglich der anderen Punkte möchte ich im folgenden etwas Licht ins Dunkel bringen:
WinAVR ist/war ein Paket, welches eine Windows-Version des Compiler AVR-GCC und diverser anderer Tools bündelt.
Die Asurolib ist letztendlich nichts anderes als normaler Quelltext bzw. eine kompilierte Version davon. Der Compiler macht nichts anderes als die von dir verwendeten Funktionen aus dieser Bibliothek mit einzubinden (sofern ihm mitgeteilt wird, wo die Bibliothek zu finden ist).
Für die Steuerung der einzelnen Schritte bis zur fertigen HEX-Datei ist dabei das Makefile zuständig.

Zur Konfiguration von AsuroFlash musst du wohl die Dokumentation konsultieren (oder darauf hoffen, dass jemand mit entsprechendem Wissen hier antwortet). Ich vermute aber, dass AsuroFlash ebenfalls auf dem Makefile aufbaut.

mfG
Markus

Jack aus BW
25.01.2011, 14:00
Servus Markus,

deinen Hinweis auf SerWrite habe ich nicht verstanden. Die Fehlermeldungen lauten:

test.c:70: warning: implicit declaration of function 'SerPrint'

asuro.c:480: warning: pointer targets in passing argument 1 of 'SerWrite' differ in signedness

C:\Uli\Asuro\MeinProjekt/test.c:70: undefined reference to `SerPrint'
C:\Uli\Asuro\MeinProjekt/test.c:72: undefined reference to `SerPrint'

So weit ich mich erinnern kann, ist SerWrite der Befehl aus der Bibliothek die auf der Asuro-CD dabei ist. Diese Bibliothek wurde dann weiterentwickelt von den RN Usern. Die aktuelle Version der Asuro-Lib ist V280rc1. In dieser Lib müsste es dann den Befehl SerPrint geben, mit dem ich gerade Probleme habe.

In meinem Projekt wird sowohl SerPrint, als auch SerWrite verwendet, vielleicht kommt mein Problem auch daher.

markusj
25.01.2011, 20:32
In dieser Lib müsste es dann den Befehl SerPrint geben, mit dem ich gerade Probleme habe.
Evtl. inkludierst du die falsche asuro.h, die Version der RN-Bibliothek definiert diese Funktion nämlich.

mfG
Markus