Antworten

Der Beitrag verursachte die folgenden Fehler, die behoben werden müssen:
Achtung: In diesem Thema wurde seit 120 Tagen nichts mehr geschrieben.
Wenn Sie nicht absolut sicher sind, dass Sie hier antworten möchten, starten Sie ein neues Thema.
Einschränkungen: 8 pro Beitrag (8 verbleibend), maximale Gesamtgröße 8,79 MB, maximale Individualgröße 1 MB
Entfernen Sie den Haken der Dateianhänge, die gelöscht werden sollen
Klicken Sie hier oder ziehen Sie Dateien hierher, um sie anzuhängen.
Anhänge und andere Optionen
Verifizierung:
Bitte lassen Sie dieses Feld leer:
Geben Sie die Buchstaben aus dem Bild ein
Buchstaben anhören / Neues Bild laden

Geben Sie die Buchstaben aus dem Bild ein:

Tastenkürzel: Alt+S Beitrag schreiben oder Alt+P für Vorschau

Zusammenfassung

Autor ^Cobra
 - 01.03.2024, 06:18:13 CET
Hatte ich am amfang. Aber wollte auch den anderen weg, wo der linker den Code zusammen bastelt probieren.
Inzwischen klappt das auch ganz gut. 
Autor pic18
 - 29.02.2024, 23:18:54 CET
warum hast Du nicht ganz Oben bei "TODO INSERT INCLUDE CODE HERE"
#include Delays.asm
eingefügt
Autor Ottmar
 - 24.01.2024, 16:44:28 CET
Ok ich bin mit meinem Latein am Ende und kann da nicht mehr weiterhelfen. Habe aber auch dazugelernt :) !
Weiterhin viel Erfolg!
Ottmar
Autor ^Cobra
 - 24.01.2024, 10:03:03 CET
Nun aber:
Ich habe mir nun ein general.inc erzeugt welches die p16f1xxx.inc und den PicTakt enthält. Dieses File
kann ich nun in alle asm File einbinden und habe überall die gleichen Constanten und muss diese auch nur an einer stelle ändern. Damit kann ich erstmal leben denke ich.

Sollte es eine besser Lösung geben gerne erwähnen. Ansonsten ist von meiner Seite aus erstmal der Fall abgeschlossen.
Werde nun mal ein kleines Projekt so versuchen aufzubauen und vermutlich mich in ein neuen Thread melden.
Danke für eure Hilfe.
Autor ^Cobra
 - 24.01.2024, 09:32:27 CET
So nachtrag:
Habe nun in der Doc den Hinweiß gefunden:

Man kann den Typ undifniert lassen: p16f1xxx.inc und der wählt dann den richtigen aus (der im Projekt eingestellt ist).
Das macht die Sache schon deutlich einfacher denke ich.
Autor ^Cobra
 - 24.01.2024, 08:57:09 CET
Noch was:
Wenn ich nun ein neues Projekt mache und ich da meine "Delays" verwenden will (darum macht man doch das ganze in einzelne Dateien damit man besser kopieren bzw. wo anders verwenden kann) kommt ein Fehler:
make[2]: *** No rule to make target '../../../Downloads/Cobra_projekt_ottmar\(1\)/Cobra_projekt/Delays.asm', needed by 'build/default/production/_ext/227318014/Delays.o'.  Stop.
make[2]: *** Waiting for unfinished jobs....

Leider weiß ich nun nicht was ich ändern muss :D
Ich habe dann mal die Datei Delays kopiert und in den Projekt Ordner von dem neuen Projekt gepackt und von da aus nochmal in das Projekt neu eingebunden. Dann geht es. Aber ist dies nun der richtige weg? selbes gilt für die p16fXXX.inc datei. Wenn ich PORTA oder sowas verwenden will, muss ich derzeit in dem neuen Asm File die p16fXXX.inc ebenfalls wieder einbinden damit kein Fehler beim übersetzen kommt.Dies würde aber bedeuten das ich bei sogut wie jedem File machen muss. Heißt 10 Files, 10 mal die .inc für den gewählten Pic rein hämmern. Quasi direkt vor dem PicTakt den man auch jedes mal neu eintragen muss... hms... Das muss doch anders gehen aber bei den ganzen Doc. blicke ich nicht durch. :-\
Autor ^Cobra
 - 24.01.2024, 06:33:18 CET
Zitat von: Ottmar in 23.01.2024, 20:46:50 CETVariablen werden im Programmlauf manipuliert, geaendert. Label behalten ihren einmal zugewiesenen Wert.
Daher EXTERN ist da fehl am Platz.
Nur Variable und Subroutinen können Global oder mit Extern gekennzeichnet werden.

Dazu noch 'ne Frage?

 
ALso kann man keine globalen Konstanten (Label) erstellen und man muss im jeden file diese dann neu anlegen. So das man z.B. PicTakt nun einmal in der Delays.inc hat, USART.inc ,IMER.inc und in Main.asm
Kann mir kaum vorstellen das es so gewollt ist...
Autor Ottmar
 - 23.01.2024, 21:15:59 CET
Zitat von: ^Cobra in 23.01.2024, 19:13:30 CETEdit:
Bei mir erzeugt der den ganzen Code, auch wenn davon Teile nicht benutzt wurden. Siehe:
CodeBeispiel.PNG
Dies zeigt der mir ebenfalls bei der MPLAB IDE X v5.15 an.

Das ist richti,g da fehlz mir auch im Moment das Verstaendnis. Es wird erst dann ein kleineres Hexfile generiert wenn ich die nicht aufgerufenen subs komplett auskommentiere.
????

Autor Ottmar
 - 23.01.2024, 20:46:50 CET
PicTakt ist keine Variable sonder ein label. Label sind wie preisschilder, man liest was draufsteht, nimmt das zu Kenntnis.

Takt equ 0x55 ; Labelwert wird zugewiesen
Movlw takt.     ; Labelwert ins wreg
Addwf musik.  ; varable + h55
Musik könnte global oder extern sein,Takt aber nicht.

Variablen werden im Programmlauf manipuliert, geaendert. Label behalten ihren einmal zugewiesenen Wert.
Daher EXTERN ist da fehl am Platz.
Nur Variable und Subroutinen können Global oder mit Extern gekennzeichnet werden.

Dazu noch 'ne Frage?

 
Autor ^Cobra
 - 23.01.2024, 19:13:30 CET
Edit:
Bei mir erzeugt der den ganzen Code, auch wenn davon Teile nicht benutzt wurden. Siehe:
CodeBeispiel.PNG
Dies zeigt der mir ebenfalls bei der MPLAB IDE X v5.15 an.

Similar topics (5)