UPDATE: oplossing, zie onderaan deze post
Heb er nu al een halve dag op zitten zoeken, incluis google...
De error die ik krijg is devolgende:
Dit is een stukje van mijn code:
Enig idee waarom ie het MAIN label niet vind? Bij alle andere labels geeft ie geen error.
Is er iemand die al een gelijkaardig probleem tegengekomen is?
Kheb al vanalles geprobeerd: andere naam, case sensitivity nagegaan.
Ik heb zelfs het org gedeelte (regel 14 tem 21) tot vlak vóór de MAIN label geplaatst. Toen vond ie 't wel, compileerde zonder probleem, maar de HEX file die hij maakte, bevatte niets, ttz deze 3 regeltjes, veel te weinig voor zoveel code:
Ik hoop dat 't maar iets stoms is wat ik over het hoofd zie...
Bedankt!
UPDATE: de oplossing:
In mijn MPLAB project had ik de *.inc files ook als header files aangegeven in de workspace. Dit mag dus niet! Die includes zorgen voor een inline expantion van de code in de hoofd asm file. Ze moeten dus enkel gedeclareerd worden in de hoofdfile en dit is ook het enige bestand dat je in de MPLAB workspace moet aangeven.
Heb er nu al een halve dag op zitten zoeken, incluis google...
De error die ik krijg is devolgende:
code:
1
2
| Error[113] D:\ELECTRONICS\WORKING LCD\LCDX_TEST.ASM 17 : Symbol not previously defined (MAIN) Error[113] D:\ELECTRONICS\WORKING LCD\LCDX_TEST.ASM 20 : Symbol not previously defined (MAIN) |
Dit is een stukje van mijn code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
| ;***** COMPILATION MESSAGES & WARNINGS *****
ERRORLEVEL -207 ; Found label after column 1.
ERRORLEVEL -302 ; Register in operand not in bank 0.
;***** PROCESSOR DECLARATION & CONFIGURATION *****
PROCESSOR 16F84
#include p16f84.inc
; embed Configuration Data within .asm File.
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
;***** MEMORY STRUCTURE *****
ORG 0x00 ; processor reset vector
goto MAIN
ORG 0x04 ; interrupt vector location
goto MAIN ; no ISR
;***** PORT DECLARATION *****
;***** CONSTANT DECLARATION *****
CONSTANT BASE = 0x0C ; Base address of user file registers
;***** REGISTER DECLARATION *****
TEMP1 equ BASE+d'6' ; Universal Temporary Register
FLAGreg equ BASE+d'7'
#define LCDbusy FLAGreg,0x00 ; LCD busy flag declared within flag register
#define LCDcflag FLAGreg,0x01
;***** INCLUDE FILES *****
#include "m_bank.inc"
#include "m_wait.inc"
;*** LCD module versions for fixed ports (e.g. PortB) ***
LCDtris equ TRISB
LCDport equ PORTB
#include "m_lcd.inc"
;***** MACROS *****
;***** SUBROUTINES *****
;************** MAIN **************
MAIN
LCDinit ; LCD Initialization
LCDchar 'C'
LCDchar 'h'
LCDchar 'a'
LCDchar 'r'
LCDchar 'a'
LCDchar 'c'
LCDchar 't'
LCDchar 'e'
LCDchar 'r'
(enzoverder) |
Enig idee waarom ie het MAIN label niet vind? Bij alle andere labels geeft ie geen error.
Is er iemand die al een gelijkaardig probleem tegengekomen is?
Kheb al vanalles geprobeerd: andere naam, case sensitivity nagegaan.
Ik heb zelfs het org gedeelte (regel 14 tem 21) tot vlak vóór de MAIN label geplaatst. Toen vond ie 't wel, compileerde zonder probleem, maar de HEX file die hij maakte, bevatte niets, ttz deze 3 regeltjes, veel te weinig voor zoveel code:
code:
1
2
3
| :020000040000FA :02400E00F13F80 :00000001FF |
Ik hoop dat 't maar iets stoms is wat ik over het hoofd zie...
Bedankt!
UPDATE: de oplossing:
In mijn MPLAB project had ik de *.inc files ook als header files aangegeven in de workspace. Dit mag dus niet! Die includes zorgen voor een inline expantion van de code in de hoofd asm file. Ze moeten dus enkel gedeclareerd worden in de hoofdfile en dit is ook het enige bestand dat je in de MPLAB workspace moet aangeven.
[ Voor 13% gewijzigd door Verwijderd op 20-08-2004 11:38 ]