Guten Abend, ich bräuchte da mal von ein paar Profis hilfe. Ich hab eine Schlatung für Schrittmotoren aufgebaut die auch einwandfrei funktioniert. Ich wollte jetzt ein Menü schreiben und auf dem Display die Menüpunkte ausgeben. Leider ist jetzt die Grenze von 1k Speicher mit dem CC5X Compieler voll. Kann mir jemand helfen in dem er mir erklärt wie ich meine Menüpunkte im EEPROM ablegen kann und auch wieder aufrufe um so mehr Speicher zu bekommen. Ich hab auch schon versucht mich mit verschiedenen Bänken zu beschäftigen. Dann könnte ich ja 4k auf den Chip speichern, aber alle Anleitungen die ich gefunden habe konnte ich nicht umsetzten. Vielleicht hat jemand von euche eine einfache Anleitung wie ich das hinbekomme. Bin für alle Ratschläge und Tips dankbar! Grüße Marc
Hallo Marc! Deine konkrete Frage kann ich zwar nicht beantworten. Es gibt aber einen Weg wie Du 1k-Grenze umgehst: Im Prinzip geht das so: 1) Du schreibst deine Unterprogramme in eigene Dateien (hier musst Du allerdings einige wichtige Regeln beachten) 2) Eine eigene Headerdatei (Endung: .H), in der alle Funktionsprototypen definiert sind, alle externen Variablen und so 3) Mit einer BAT-Datei werden alle C-Dateien (in eine ASM-Datei) kompeliert 4) Mit der MPLAB-IDE (genauer mit dem Linker) erfolgt nun die Zusammensetzung des gesammten Projekts. 5) Wenn Du Interrupts auch noch verwendst, musst das lkr- File (in deinem Fall 16f877.lkr (ist irgendwo dort, wo MPLAB installiert ist) gemäß dem Handbuch zum CC5X-Compiler anpassen! Kennst Du die Seit www.cc5x.de ? - Dort ist das so halbwegs beschrieben. Ich habe das ganze für die Ansteuerung eines SED1520- Grafik-Displays benützt und funktioniert ausgezeichnet. mfg Stefan B.
Wenn du mit demm CC5X schon mal was größer wie 1k compeliert hast, wärst du dann so freundlich mir das mal zu schicken oder zu posten? Dass ich mir mal den Quellcode anschaun kann. Wie das "prinzipiel aufgebaut werden müsste. Wär mir echt ne große Hilfe. Grüße Marc
Hallo Marc! Na klar! Bei diesem Projekt handelt es sich um eine PID-Regelung. Ist zwar noch in Arbeit. Aber darum geht es ja nicht! Einige Anmerkungen: 1) Die BATCH-Datei (hier pid_demo1.bat) erzeugt aus jeder C-Datei eine ASM-Datei (mit Hilfe des CC5X-Compilers): Wichtig ist dabei, dass Du angibst wo sich der CC5X-Compiler befindet: Der Eintrag zum Uebersetzen der Datei GLCD_BASIS_ROUTINEN.C lautet daher so: C:\Programme\bknd\CC5X\CC5X.EXE GLCD_BASIS_ROUTINEN.C -IC:\Programme\bknd\CC5X\ -u -r -a -r2 Dies musst Du fuer jede C-Datei eingeben. Wenn in den C-Dateien alles richtig ist (also Syntax und so) werden die dazugehörigen ASM-Dateien erzeugt. Andernfalls wird die ev. schon vorhanden ASM-Datei gelöscht. (Die OCC-Datei gibt Auskünft über die aufgetretenen Fehler) 2) in der MPLAB - IDE müssen nun alle ASM-Dateien eingefügt werden (nicht die C-Dateien) und die Datei 16f877.lkr Die Datei 16f877.lkr musst du im MPLAB-Verzeichnis suchen und gemäß CC5x-Handbuch anpassen oder Du nimmst meine (falls DU den PIC16F877 verwendest) 3) In der MPLAB-IDE Nun mit Project -> Build das Projekt kompelieren. zunächst wird jede ASM-Datei kompeliert, wobei jede bestätigt werden muss. Am Ende sollte das ganze etwa so aussehen: (wichtig ist die letzte Meldung: BUILD SUCCEEDED) Clean: Deleting intermediary and output files. Clean: Deleted file "GLCD_BASIS_ROUTINEN.O". Clean: Deleted file "GLCD_FONT5X7.O". Clean: Deleted file "GLCD_FONT10X22.O". Clean: Deleted file "pid_demo.O". Clean: Deleted file "GLCD_FONT8X14.O". Clean: Deleted file "PID.O". Clean: Deleted file "D:\Stefan\MPLAB_WORK\FUEP4_Dig_PID\PID_Demo1.HEX". Clean: Deleted file "D:\Stefan\MPLAB_WORK\FUEP4_Dig_PID\PID_Demo1.mcs". Clean: Done. Executing: "C:\Programme\Microchip\MPASM Suite\MPASMWIN.exe" GLCD_BASIS_ROUTINEN.asm /o+ /e+ /l+ /x- /p16F877 /c+ Executing: "C:\Programme\Microchip\MPASM Suite\MPASMWIN.exe" GLCD_FONT5X7.asm /o+ /e+ /l+ /x- /p16F877 /c+ Executing: "C:\Programme\Microchip\MPASM Suite\MPASMWIN.exe" GLCD_FONT10X22.asm /o+ /e+ /l+ /x- /p16F877 /c+ Executing: "C:\Programme\Microchip\MPASM Suite\MPASMWIN.exe" pid_demo.asm /o+ /e+ /l+ /x- /p16F877 /c+ Executing: "C:\Programme\Microchip\MPASM Suite\MPASMWIN.exe" GLCD_FONT8X14.asm /o+ /e+ /l+ /x- /p16F877 /c+ Executing: "C:\Programme\Microchip\MPASM Suite\MPASMWIN.exe" PID.asm /o+ /e+ /l+ /x- /p16F877 /c+ Executing: "C:\Programme\Microchip\MPASM Suite\mplink.exe" "16f877.lkr" "D:\Stefan\MPLAB_WORK\FUEP4_Dig_PID\GLCD_BASIS_ROUTINEN.O" "D:\Stefan\MPLAB_WORK\FUEP4_Dig_PID\GLCD_FONT5X7.O" "D:\Stefan\MPLAB_WORK\FUEP4_Dig_PID\GLCD_FONT10X22.O" "D:\Stefan\MPLAB_WORK\FUEP4_Dig_PID\pid_demo.O" "D:\Stefan\MPLAB_WORK\FUEP4_Dig_PID\GLCD_FONT8X14.O" "D:\Stefan\MPLAB_WORK\FUEP4_Dig_PID\PID.O" /o "PID_Demo1.HEX" MPLINK 4.02, Linker Copyright (c) 2006 Microchip Technology Inc. Errors : 0 MP2COD 4.02, COFF to COD File Converter Copyright (c) 2006 Microchip Technology Inc. Errors : 0 MP2HEX 4.02, COFF to HEX File Converter Copyright (c) 2006 Microchip Technology Inc. Errors : 0 Loaded D:\Stefan\MPLAB_WORK\FUEP4_Dig_PID\PID_Demo1.COD. BUILD SUCCEEDED: Wed May 03 10:30:38 2006 3) wie schon gesagt muss es eine HEADER-Datei geben, wo der Prozessor definiert ist, alle externen Variablen Unterprogramme usw. Bei mir heisst Diese Datei immer PROJEKT.H 4) bei dieser modularen Programmierung können als Übergabe- oder Rückgabewerte der Unterprogramme NUR 8-Bit-Zahlen verwendet werden. Wenn Du aber 16bit-Werte benötigst, so musst Du diese als externe Variablen definieren (bei mir heissen diese zB. tmp_uebergabe_uns16 Jede Externe Variable muss nicht nur in der HEADER-Datei definiert werden, sondern auch in einer (beliebigen) C-Datei. mfg Stefan B. PS.: Es ist geplant, eine etwas übersichtlichere (Schrit-für-Schritt)-Doku zu diesem Thema zu erstellen, aber zur Zeit fehlt mir noch die Zeit, ausserdem ist das ganze für mich ebenso noch etwas Neuland
Erst mal vielen Danke an dich von meiner Seite. ICh werde das ganze geleich mal Probieren ob es funktioniert. Ich hab jetzt schon versucht den Compieler zu wechslen aber das ist auch ein Riesen aufwand das schon fertige Programm um zu schreiben.
Ich hab das jetzt mal versucht. Hat leider net gleich funktioniert. Das Problem war, dass meine Verzeichnissstruktur zu lange war. Inzwischen hat es funtioniert. Muss jetzt bloß den Quellcode von dir in meine Anwendug einbaun und dann hoffe ich dass es alles funktioniert. Noch eine Frage zu folgender Datei "PROJEKT.h": Bezüglich der Protbelegung -------------------------- Muss ich die Prots inder Headerfile deklarieren, damit Sievvon allen *.c Files benutz werden können? Bsp.: #pragma bit GLCD_WR @ PORTB.1 Bezüglich der pages -------------------------- extern page0 void prog1(bank0 unsigned char zeichen); extern page1 void prog2(void); Gehe ich richtig in der Annahme dass sich "prog1" in der Speicherzelle 0 befindet und "prog2" in Speicherzelle 1 befindet. Meine 4 pages ( Speicherzellen ) bilden dann insgesamt 4k Speicher? Werd mich jetzt mal ran machen und mein Programm auf verschiedene pages um strukturieren. Wenn ich des soweit auf der Reihe habe und meine Klausuren hinter mir. Wäre ich gerne bereit einen anständige Step by Step Anleitung mit dir zusammen zu schreiben. Was ich nämlich so im Netz gefunden habe ist alles net grad der Renner.
Bezüglich der Portbelegung: In diesem Fall wäre es nicht notwendig die Ports in der PROJEKT.H - Datei zu deklarieren, sondern direkt in GLCD_BASIS_ROUTINEN.C, da sie nur hier verwendet werden. (Du kannst es ja probieren!) Der Grund ist, dass ich diese Unterprogrammme (zur Ansteuerung des Grafik-LC-Displays) auch bei anderen Projekten verwende, und da kann es schon mal sein, dass ich das Display an einen anderen Port anschließe. Die C-Dateien möchte ich nicht jedesmal anpassen. Die PROJEKT.H - Datei ist sowiese bei jedem Projekt anderes, also warum dann nicht hier auch die Port-Definitionen. Ausserdem ist es übersichtlicher, wenn bei einem größeren Projekt, alle Ports an einer Stelle (also im PROJEKT.H) angepasst werden. - Habe ich mich verständlich ausgedrückt? Am besten ist hier: einfach ausprobieren, und aus Fehlern lernen! Durch das umgehen der 1k-Grenze ist man zu solchen maßnahmen gezwungen, die vielleicht etwas umständlich wirken. Ich denke schon, dass bei dir Prog1 in der Speicher-PAGE 0 steht und prog2 in der PAGE1. So richtig kontrolliert habe ich dass noch nicht. Da es mir auch egal ist, wo etwas steht. Eine Page ist nicht 1k sondern 2k (beim PIC16F877 hast Du 4 Pages zu je 2k also einen gesamten Programmspeicher von 8k). Wie schon gesagt: einfach viel ausprobieren und oft hilft auch das CC5x-Handbuch. mfg Stefan B. PS.: Wenn Du sonst noch Fragen hast frag, aber ich bin auch noch nicht so ein Profi was den CC5X-Kompiler betrifft!
Hab jetzt bissle rumgespielt und wollte eine fertige *.HEX file erzwugen aus dem MPLab heraus ohne den zwischenschritt über die ASM Files zu gehen. Aber das Funktioniert nicht ganz. Hast du das schon mal versucht. Er erzeugt mir die ASM Files der jeweiligen C Datei und bringt fehler wie folgt: -------------------------------------------------------------------- Clean: Deleting intermediary and output files. Clean: Deleted file "pid_demo.O". Clean: Deleted file "GLCD_BASIS_ROUTINEN.O". Clean: Deleted file "GLCD_FONT5X7.O". Clean: Deleted file "GLCD_FONT10X22.O". Clean: Deleted file "PID.O". Clean: Done. Executing: "C:\Programme\bknd\CC5X\CC5X.EXE" pid_demo.c -CC -fINHX8M -p16F877 -IC:\Programme\CC5Xfree -a -L -Q -V -FM +reloc.inc CC5X Version 3.2K, Copyright (c) B Knudsen Data, Norway 1992-2006 --> FREE edition, 8-16 bit int, 24 bit float, 1k code, reduced optim. pid_demo.c: Chip = 16F877 RAM : -------- -------- -------- -------- ======== ======== ====---- .------- 40h: -------- ------.. ******** ******** ******** ******** =******* ******** 80h: -------- -------- -------- -------- ******** ******** ******** ******** C0h: ******** ******** ******** ******** ******** ******** -------- -------- 100h: -------- -------- ******** ******** ******** ******** ******** ******** 140h: ******** ******** ******** ******** ******** ******** -------- -------- 180h: -------- -------- ******** ******** ******** ******** ******** ******** 1C0h: ******** ******** ******** ******** ******** ******** -------- -------- RAM usage: 49 bytes (21 local), 319 bytes free File 'pid_demo.fcs' Optimizing - removed 5 instructions (-1 %) File 'pid_demo.var' File 'pid_demo.asm' File 'pid_demo.lkr' File 'pid_demo.occ' Codepage 0 has 287 word(s) : 14 % Codepage 1 has 0 word(s) : 0 % Codepage 2 has 0 word(s) : 0 % Codepage 3 has 0 word(s) : 0 % Total of 287 code words (3 %) * Estimated CODE SIZE of full optimization: 241 code words (-16 %) RESTRICTIONS on commercial usage applies as described in file readme.txt Starting assembler 'C:\Programme\Microchip\MPASM Suite\mpasmwin.exe' Message[302] L:\4K\PID_DEMO.ASM 682 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\PID_DEMO.ASM 688 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\PID_DEMO.ASM 691 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\PID_DEMO.ASM 693 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\PID_DEMO.ASM 696 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\PID_DEMO.ASM 699 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\PID_DEMO.ASM 708 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\PID_DEMO.ASM 728 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\PID_DEMO.ASM 1010 : Register in operand not in bank 0. Ensure that bank bits are correct. Executing: "C:\Programme\bknd\CC5X\CC5X.EXE" GLCD_BASIS_ROUTINEN.C -CC -fINHX8M -p16F877 -IC:\Programme\CC5Xfree -a -L -Q -V -FM +reloc.inc CC5X Version 3.2K, Copyright (c) B Knudsen Data, Norway 1992-2006 --> FREE edition, 8-16 bit int, 24 bit float, 1k code, reduced optim. GLCD_BASIS_ROUTINEN.C: Chip = 16F877 RAM : -------- -------- -------- -------- ======== -----..- -------- -------- 40h: --****** ******** ******** ******** ******** ******** ******** ******** 80h: -------- -------- -------- -------- ******** ******** ******** ******** C0h: ******** ******** ******** ******** ******** ******** -------- -------- 100h: -------- -------- ******** ******** ******** ******** ******** ******** 140h: ******** ******** ******** ******** ******** ******** -------- -------- 180h: -------- -------- ******** ******** ******** ******** ******** ******** 1C0h: ******** ******** ******** ******** ******** ******** -------- -------- RAM usage: 34 bytes (8 local), 334 bytes free File 'GLCD_BASIS_ROUTINEN.fcs' Optimizing - removed 0 instructions (-0 %) File 'GLCD_BASIS_ROUTINEN.var' File 'GLCD_BASIS_ROUTINEN.asm' File 'GLCD_BASIS_ROUTINEN.occ' Codepage 0 has 145 word(s) : 7 % Codepage 1 has 0 word(s) : 0 % Codepage 2 has 0 word(s) : 0 % Codepage 3 has 0 word(s) : 0 % Total of 145 code words (1 %) * Estimated CODE SIZE of full optimization: 136 code words (-6 %) RESTRICTIONS on commercial usage applies as described in file readme.txt Starting assembler 'C:\Programme\Microchip\MPASM Suite\mpasmwin.exe' Executing: "C:\Programme\bknd\CC5X\CC5X.EXE" GLCD_FONT5X7.C -CC -fINHX8M -p16F877 -IC:\Programme\CC5Xfree -a -L -Q -V -FM +reloc.inc CC5X Version 3.2K, Copyright (c) B Knudsen Data, Norway 1992-2006 --> FREE edition, 8-16 bit int, 24 bit float, 1k code, reduced optim. GLCD_FONT5X7.C: Chip = 16F877 RAM : -------- -------- -------- -------- ===----- -------- -------- -----*** 40h: ******** ******** ******** ******** ******** ******** ******** ******** 80h: -------- -------- -------- -------- ******** ******** ******** ******** C0h: ******** ******** ******** ******** ******** ******** -------- -------- 100h: -------- -------- ******** ******** ******** ******** ******** ******** 140h: ******** ******** ******** ******** ******** ******** -------- -------- 180h: -------- -------- ******** ******** ******** ******** ******** ******** 1C0h: ******** ******** ******** ******** ******** ******** -------- -------- RAM usage: 29 bytes (3 local), 339 bytes free File 'GLCD_FONT5X7.fcs' Optimizing - removed 1 instructions (-0 %) File 'GLCD_FONT5X7.var' File 'GLCD_FONT5X7.asm' File 'GLCD_FONT5X7.occ' Codepage 0 has 401 word(s) : 19 % Codepage 1 has 0 word(s) : 0 % Codepage 2 has 0 word(s) : 0 % Codepage 3 has 0 word(s) : 0 % Total of 401 code words (4 %) * Estimated CODE SIZE of full optimization: 396 code words (-1 %) RESTRICTIONS on commercial usage applies as described in file readme.txt Starting assembler 'C:\Programme\Microchip\MPASM Suite\mpasmwin.exe' Message[302] L:\4K\GLCD_FONT5X7.ASM 70 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\GLCD_FONT5X7.ASM 76 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\GLCD_FONT5X7.ASM 78 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\GLCD_FONT5X7.ASM 81 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\GLCD_FONT5X7.ASM 82 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\GLCD_FONT5X7.ASM 90 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\GLCD_FONT5X7.ASM 95 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\GLCD_FONT5X7.ASM 96 : Register in operand not in bank 0. Ensure that bank bits are correct. Executing: "C:\Programme\bknd\CC5X\CC5X.EXE" GLCD_FONT10X22.C -CC -fINHX8M -p16F877 -IC:\Programme\CC5Xfree -a -L -Q -V -FM +reloc.inc CC5X Version 3.2K, Copyright (c) B Knudsen Data, Norway 1992-2006 --> FREE edition, 8-16 bit int, 24 bit float, 1k code, reduced optim. GLCD_FONT10X22.C: Chip = 16F877 RAM : -------- -------- -------- -------- ====---- -------- -------- ------** 40h: ******** ******** ******** ******** ******** ******** ******** ******** 80h: -------- -------- -------- -------- ******** ******** ******** ******** C0h: ******** ******** ******** ******** ******** ******** -------- -------- 100h: -------- -------- ******** ******** ******** ******** ******** ******** 140h: ******** ******** ******** ******** ******** ******** -------- -------- 180h: -------- -------- ******** ******** ******** ******** ******** ******** 1C0h: ******** ******** ******** ******** ******** ******** -------- -------- RAM usage: 30 bytes (4 local), 338 bytes free File 'GLCD_FONT10X22.fcs' Optimizing - removed 2 instructions (-0 %) File 'GLCD_FONT10X22.var' File 'GLCD_FONT10X22.asm' File 'GLCD_FONT10X22.occ' Codepage 0 has 476 word(s) : 23 % Codepage 1 has 0 word(s) : 0 % Codepage 2 has 0 word(s) : 0 % Codepage 3 has 0 word(s) : 0 % Total of 476 code words (5 %) * Estimated CODE SIZE of full optimization: 468 code words (-1 %) RESTRICTIONS on commercial usage applies as described in file readme.txt Starting assembler 'C:\Programme\Microchip\MPASM Suite\mpasmwin.exe' Message[302] L:\4K\GLCD_FONT10X22.ASM 229 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\GLCD_FONT10X22.ASM 235 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\GLCD_FONT10X22.ASM 237 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\GLCD_FONT10X22.ASM 240 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\GLCD_FONT10X22.ASM 241 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\GLCD_FONT10X22.ASM 249 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\GLCD_FONT10X22.ASM 254 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] L:\4K\GLCD_FONT10X22.ASM 255 : Register in operand not in bank 0. Ensure that bank bits are correct. Executing: "C:\Programme\bknd\CC5X\CC5X.EXE" PID.C -CC -fINHX8M -p16F877 -IC:\Programme\CC5Xfree -a -L -Q -V -FM +reloc.inc CC5X Version 3.2K, Copyright (c) B Knudsen Data, Norway 1992-2006 --> FREE edition, 8-16 bit int, 24 bit float, 1k code, reduced optim. PID.C: Chip = 16F877 RAM : -------- -------- -------- -------- =====... .---.... ........ .......* 40h: ******** ******** ******** ******** ******** ******** ******** ******** 80h: -------- -------- -------- -------- ******** ******** ******** ******** C0h: ******** ******** ******** ******** ******** ******** -------- -------- 100h: -------- -------- ******** ******** ******** ******** ******** ******** 140h: ******** ******** ******** ******** ******** ******** -------- -------- 180h: -------- -------- ******** ******** ******** ******** ******** ******** 1C0h: ******** ******** ******** ******** ******** ******** -------- -------- RAM usage: 31 bytes (5 local), 337 bytes free Warning[1] L:\4k\PID.C 189 : Duplicate inline multiplication (math library may save code, option -wi removes warning) Warning[2] L:\4k\PID.C 203 : Duplicate inline multiplication (math library may save code, option -wi removes warning) File 'PID.fcs' Optimizing - removed 1 instructions (-0 %) File 'PID.var' File 'PID.asm' File 'PID.occ' Codepage 0 has 1 word(s) : 0 % Codepage 1 has 633 word(s) : 30 % Codepage 2 has 0 word(s) : 0 % Codepage 3 has 0 word(s) : 0 % Total of 634 code words (7 %) * Estimated CODE SIZE of full optimization: 489 code words (-22 %) RESTRICTIONS on commercial usage applies as described in file readme.txt Starting assembler 'C:\Programme\Microchip\MPASM Suite\mpasmwin.exe' Executing: "C:\Programme\Microchip\MPASM Suite\MPLink.exe" "16f877.lkr" "L:\4k\pid_demo.O" "L:\4k\GLCD_BASIS_ROUTINEN.O" "L:\4k\GLCD_FONT5X7.O" "L:\4k\GLCD_FONT10X22.O" "L:\4k\PID.O" /o "PID_Demo1.HEX" MPLINK 4.02, Linker Copyright (c) 2006 Microchip Technology Inc. Error - symbol '_LcJA' has multiple definitions. Errors : 1 Link step failed. BUILD FAILED: Wed May 03 15:54:58 2006 -------------------------------------------------------------------- An was kann das liegen, weil es wäre ja shcon eine Erleichterung alles vom MPlab mach zu lassen und nicht erst Hex Files zu erzeugen. Grüße Marc
Hallo Marc! Nein direkt mit MPLAB habe ich es auch noch nicht hinbekommen. Nachdem die "umständliche" Methode mit der BAT-Datei funktioniert habe ich mir darüber auch keine Gedanken mehr gemacht. Aber Du hast schon recht, wäre um einiges komfortabler. Heisst das jetzt, dass bei dir die Methode mit der BAT-Datei funktioniert, auch wenn Du (kleine) Änderungen an den C-Code vornimmst. Kannst Du es dann kompelieren und eine HEX-Datei erzeugen? Übrigens: Das Ergebnis der kompelierung kannst Du ja in den .LST-Files kontrollieren. Ist dein eigentliches Problem nun gelöst, oder gibt es da noch schwierigkeiten? mfg Stefan B. (Linz, Österreich)
Ich muss jetzt erst mal noch mein Programm umschreiben und dann kann ich dir bescheid geben, ob all meine Fragen beantwortet sind. G Danke dir aber auf jedenfall mal für deine Hilfe. Grüße Marc
Hallo Marc! Ich habe mal begonnen meine Erkenntnisse zum CC5X-Compiler (beim Umgehen der 1k-Grenze) niederzuschreiben. Allerdings nur was die Programmiertechniken betrifft. Vielleicht hilft Die dass ja weiter mfg Stefan B. (Linz, Österreich)
Muss dich noch mal was Frage. Wie kann ich Testen ob meine Teilprogramme funktionieren? Muss ich die einzel Compilieren? Bekomm immer den Fehler: ------------------------------------- //Delay1ms(1000); } ^------ Error[1] L:\SLSProgHead\SLSMain.c 153 : Function 'LCDZeile0' is not defined (The application contains a call to a function that is not defined)
Hallo Stephan. Das mit dem Testen hab ich raus! Einfach die *.bat ausführen und dann seh ich ob die ASM Files ok sind. Jetzt brauch ich noch mal deine Hilfe. Ich hab jetzt meine große Datei unterteil. Hab im ersten Schritt einfach meine pic Initialisierung in eine Extra Datei geschrieben(TRIS,PORTS,ADCON usw.). Beim erzeugen der ASM kommen keine Fehler. Wenn ich beide ASM im MPLab linken will kommt immer ein Fehler. ===================================================================== Clean: Deleting intermediary and output files. Clean: Deleted file "INIT.O". Clean: Deleted file "SLSMain.O". Clean: Done. Executing: "C:\Programme\Microchip\MPASM Suite\MPAsmWin.exe" INIT.asm /o+ /e+ /l+ /x- /p16F877 /c+ Executing: "C:\Programme\Microchip\MPASM Suite\MPAsmWin.exe" SLSMain.asm /o+ /e+ /l+ /x- /p16F877 /c+ Executing: "C:\Programme\Microchip\MPASM Suite\MPLink.exe" "16f877.lkr" "L:\SLSProg2\INIT.O" "L:\SLSProg2\SLSMain.O" /o "SLS.HEX" /kC:\Programme\Microchip\MPASM Suite\LKR MPLINK 4.02, Linker Copyright (c) 2006 Microchip Technology Inc. Error - unrecognized input: Suite\LKR Errors : 1 Link step failed. BUILD FAILED: Thu May 04 23:25:21 2006 ===================================================================== Ich gehe davon aus, dass die *.lkr irgend wie net stimmt bzw. ich für meinen Fall etwas ändern muss. Habs probiert und probiert aber es will net. Grüße Marc
Habs geschaft ein dummer kleiner Fehler mit großer Auswirkung. Hatte bei der *.lkr File nen Falschen Pfad im MPLAB. OK somit hat isch meine Frage geklärt. DANKE dir. G
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.