Bin blutiger Anfänger bei MPLAB 8.3 und überhaupt PIC-Programmierung. Jetz hab ich mir den C-Compiler von Knudsen installiert, alles umgestellt. Nun wollte ich gerne wieder mit ASM testen, finde jedoch die richtige Language toolsuite nicht mehr (gibts ja einige davon)).. Wer kann mir helfen? Miit welcher einstellung für language toolsuite wird MPLAB 8.30 ***defaultmäßig*** ausgeliefert? tia walter
Also ich kenn das eigentlich nur mit MPASM, also dem 8bit Assembler. hast du mal bei den Projekt-Einstellungen geguckt?
Lieber JOchen, danke für die rasche antwort. habe jetzt die MPASM eingestellt. hier mal der beginn des ASM-Proggys: ; *********************************************************************** ; Programm: Demo1.ASM ; Funktion: Demo-Programm fuer das 16F88 Demoboard der HTL Rennweg ; Zuerst leuchten alle LEDs eine Sekunde lang. ; Danach stehen folgende Funktionen zur Verfuegung: ; - Keine Taste gedrueckt: Mit Poti koennen LEDs ein- und ; ausgeschaltet werden ; - Druecken der Taste 1: alle LEDs ein ; - Druecken der Taste 2: Mit LDR koennen die LEDs ein- und ; ausgeschaltet werden ; - Druecken beider Tasten: Piepston am Summer, LEDs 1,2 aus ; ; Controller: PIC 16F88 ; ; Konfiguration des Controllers: ; PORTA: RA0 Poti (0..5V) ; RA1 LDR (heller - Spannung steigt, ca. 2-4V ) ; PORTB: RB0 Eingang: Taster S1 ; RB1 Ausgang: LED2 (gruen, aktiv Low) ; RB2 Ausgang: LED3 (gelb, aktiv High) ; RB3 Ausgang: Summer ; RB5 Eingang (Taster S2) ; *********************************************************************** ; Autoren: G. Juengling, HTL Wien 3 Rennweg ; Datum: April 2006 ; *********************************************************************** #DEFINE SIMU 0 #include <P16f88.inc> ; Include-Datei fuer Standard-Bezeichner ; Configuration Word: ; Lov Voltage Programming Off, Brownout Detection Off, Internal Reset ; Power-Up-Timer Off, Watchdog-Timer Off, Internal RC Oscillator __CONFIG _CONFIG1, _LVP_OFF & _BODEN_OFF & _MCLR_OFF & _PWRTE_OFF & _WDT_OFF & _INTRC_IO w1cnt equ 0x20 ; Zaehlvariable fuer Delay von 1s INI clrf PORTB ; Sicherheitshalber die clrf PORTA ; Ports A und B loeschen bcf STATUS,RP1 ; Auf Bank 1 umschalten bsf STATUS,RP0 errorlevel -302 ; Warnung [302] deaktivieren movlw 0xF1 ; Port B konfigurieren, Bits 1-3 movwf TRISB ; als Ausgang, der Rest Eingaenge bcf OPTION_REG,NOT_RBPU ; interne Pull-Ups ein movlw 0x03 ; Pins RA0 und RA1 als movwf ANSEL ; Analog-Pins konfigurieren clrf ADCON1 ; int. Referenz, linksb errorlevel +302 ; Warnung [302] reaktivieren bcf STATUS,RP0 ; zur?ck auf Bank 0 movlw 0x01 usw usw das ding lief schon einwandfrei. jetz meint er beim 'maken': ---------------------------------------------------------------------- Debug build of project `D:\Dateien\PIC\Progs\lauflicht\ss.mcp' started. Language tool versions: MPASMWIN.exe v5.30.01, mplink.exe v4.30.01 Preprocessor symbol `__DEBUG' is defined. Target debug platform is `__MPLAB_DEBUGGER_PK3=1'. Debug platform options are: `__ICD2RAM=1'. Thu Jul 09 18:30:38 2009 ---------------------------------------------------------------------- Make: The target "D:\Dateien\PIC\Progs\lauflicht\demo1.o" is out of date. Executing: "C:\Programme\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F88 "D:\Dateien\PIC\Progs\demo1\demo1.asm" /l"demo1.lst" /e"demo1.err" /o"demo1.o" /d__DEBUG=1 /d__MPLAB_DEBUGGER_PK3=1 Error[152] D:\DATEIEN\PIC\PROGS\DEMO1\DEMO1.ASM 38 : Executable code and data must be defined in an appropriate section Error[152] D:\DATEIEN\PIC\PROGS\DEMO1\DEMO1.ASM 39 : Executable code and data must be defined in an appropriate section Error[152] D:\DATEIEN\PIC\PROGS\DEMO1\DEMO1.ASM 41 : Executable code and data must be defined in an appropriate section Error[152] D:\DATEIEN\PIC\PROGS\DEMO1\DEMO1.ASM 42 : Executable code and data must be defined in an appropriate section Error[152] D:\DATEIEN\PIC\PROGS\DEMO1\DEMO1.ASM 45 : Executable code and data must be defined in an appropriate section Error[152] D:\DATEIEN\PIC\PROGS\DEMO1\DEMO1.ASM 46 : Executable code and data must be defined in an appropriate section usw usw kannst Du mir helfen? Ich habe irgendeine dumme einstellung in mplab verdaddelt, denk ich. lg walter
DANKE, alles zurück - jetzt gehts! hab an vielen settings herumgedrückt ;.((( - weiss leider nicht mehr, welches relevant war... vll. lags auch daran, dass ich ein neues projekt mit dem wizard aufgezogen habe... lg walter
Irgendwie fehlen in Deinem Code die ORG Direktiven. Das sind Anweisungen an den Compiler/Linker, den ausführbaren Code an diesen absoluten Adressen auszurichten. Normalerweise hat man immer folgende 2 ORGs drin: ORG 0 % Hier gehts beim Reset los ORG 4 % Hierhin springt er beim Interrupt Such Dir mal im Installationsverzeichnis von MPLAB das passende Template raus, da siehst du wie's geht. Es gibt 2 verschiede, eins für "absolute" (Adressen legst du selber fest) und eins für relocatable (das mit "o", Adressen legt der Linker fest). Die o.g. Adressen für Reset und Interrupt sind aber in beiden Fällen immer fix. Ob "Abs" oder "Rel" gemaked wird, must du im Projekt festlegen. Noch ein Tip: Die Bank kannst du auch mit "banksel" umschalten, das ist besser portierbar und bei Relocatable gehts überhaupt nur so.
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.