Hallo,
ich habe nun die bereits vorhandenen Beiträge bezüglich der XLCD lib
gelesen und bin leider nicht weitergekommen.
Ich möchte die XLCD lib vom xc8 compiler verwenden.
Folgende Beschreibung habe ich mir zur Hilfe genommen.
http://pic-projekte.de/wordpress/?p=908
Die xlcd.h hab ich in meinem Projectordner kopiert und eingebunden.
Sie wurde nicht abgeändert, da das Display vorerst im 4bit Modus an den
bereits voreingestellten Pins von PORTB angeschlossen wird.
Die C-Dateien aus dem Ordner
...\Microchip\xc8\v1.30\sources\pic18\plib\XLCD
busyxlcd.c
openxlcd.c
putrxlcd.c
...
wurden als Source-Dateien eingebunden
die Delay-Funktionen wurden ebenfalls erstellt.
Das Problem ist dass, beim Compilieren des Projekts die obige (siehe
Anhang)Fehlermeldung ausgegeben wird.
Ich verwende den cx8 v1.32 Compiler und MPLABX v2.15.
1 | #pragma config FOSC = INTIO67, FCMEN = OFF, IESO = OFF
|
2 | #pragma config PWRT = ON, BOREN = OFF, BORV = 18
|
3 | #pragma config WDTEN = OFF, WDTPS = 1
|
4 | #pragma config MCLRE = ON, HFOFST = OFF, LPT1OSC = OFF, PBADEN = OFF
|
5 | #pragma config CCP2MX = PORTBE, STVREN = OFF, LVP = OFF, XINST = OFF, DEBUG = OFF
|
6 | #pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF
|
7 | #pragma config CPB = OFF, CPD = OFF
|
8 | #pragma config EBTR0 = OFF
|
9 | #pragma config EBTR1 = OFF
|
10 | #pragma config EBTR2 = OFF
|
11 | #pragma config EBTR3 = OFF
|
12 |
|
13 | #define _XTAL_FREQ 16000000
|
14 | #define USE_OR_MASKS
|
15 |
|
16 | #include "p18f46k20.h"
|
17 | #include "xc.h"
|
18 | #include "stdio.h"
|
19 | #include "xlcd.h"
|
20 |
|
21 |
|
22 | void INIT_uC(void);
|
23 | void DelayFor18TCY(void);
|
24 | void DelayPORXLCD(void);
|
25 | void DelayXLCD(void);
|
26 |
|
27 |
|
28 | void main(void)
|
29 | {
|
30 |
|
31 | unsigned char str[] = "abc";
|
32 |
|
33 | INIT_uC();
|
34 |
|
35 | OpenXLCD(FOUR_BIT & LINES_5X7);
|
36 |
|
37 | while(1);
|
38 | }
|
39 |
|
40 |
|
41 | void INIT_uC(void)
|
42 | {
|
43 | OSCCONbits.IRCF2 = 1;
|
44 | OSCCONbits.IRCF1 = 1; // 16MHz
|
45 | OSCCONbits.IRCF0 = 1;
|
46 |
|
47 | TRISA = 0xff;
|
48 |
|
49 | LATD = 0x00;
|
50 | TRISD = 0x00;
|
51 |
|
52 | }
|
53 |
|
54 | void DelayFor18TCY(void)
|
55 | {
|
56 | unsigned char x;
|
57 |
|
58 | for(x=0;x<18;x++)
|
59 | {Nop();}
|
60 | }
|
61 |
|
62 | void DelayPORXLCD(void)
|
63 | {
|
64 | __delay_ms(15);
|
65 | return;
|
66 | }
|
67 |
|
68 | void DelayXLCD(void)
|
69 | {
|
70 | __delay_ms(5);
|
71 | return;
|
72 | }
|
Wäre super, wenn von euch jemand sagen könnte, was ich falsch oder
vergessen habe.
Vielen Dank im Voraus!
mgf