Problem bei Verwendung der XLCD lib

OP #3750334
Lesenswert?
• ▲
▼
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
Angehängte Dateien:
#3751823
Lesenswert?
• ▲
▼
simon hoen. schrieb:
> 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

Da ja "plib" verwendet wird ist die Einbindung dieser Dateien unnötig 
bzw, falsch.
Bei korrekt installierten Compiler braucht man keine Dateien irgendwohin 
kopieren, wie auch die Angabe von #include "p18f46k20.h" unnötig ist da 
das richtige Headerfile über "xc.h" eingebunden wird.

Durch Eingabe von "include <" landet automatisch im richtigen Pfad und 
braucht dann nur noch die entsprechenden Headerdateien auswählen (bzw. 
in den darunterliegende Verzeichnisse wie "plib" ).

Also die eingebunden .c entfernen.
Dein:
#include "p18f46k20.h"
#include "xc.h"
#include "stdio.h"
#include "xlcd.h"
ersetzt du durch:

#include <xc.h>
#include <stdio.h>
#include <plib/xlcd.h>

und das ganze wird fehlerfrei Compiliert (MPLABX 2.10 XC8 1.31).
Ob es dann auf deine Hardware fehelerfrei läuft kann ich natürlich nicht 
sagen. Jedenfalls werden laut .LST/.MAP/....etc Files die entsprechenden 
PLIB Routinen korrekt eingebunden.
OP #3753125
Lesenswert?
• ▲
▼
Hallo Chris,

Vielen Dank für deine Hilfe:), jetzt fuzts.
Hab jedoch noch ein paar Fragen

ich möchte nun den PORT abändern, an dem das Display angeschlossen 
werden soll. Hab dafür die xlcd.h datei (die ich in meinen Order kopiert 
und includiert habe) abgeändert.
Wie kann ich diese compilieren, damit die Änderungen wirksam werden?


Chris B. schrieb:
> Durch Eingabe von "include <" landet automatisch im richtigen Pfad und
> braucht dann nur noch die entsprechenden Headerdateien auswählen (bzw.
> in den darunterliegende Verzeichnisse wie "plib" ).

Wie wähle ich die entsprechende Headerdatei aus?


Danke für jede Hilfe!

mgf

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.