Ik ben bezig om zelf een proggie te schrijven met behulp van DlPortio.dll. Dit heb ik tot nu toe:
Het probleem: Hij doet helemaal niks!!
.
Ik heb het proggie in Delphi 6 geschreven en hij start ook op. Hij cleared het display helemaal niet. De 2 zwarte balken blijven staan.
Wat doe ik fout?
Ik snap er niks van.
Oh ja als ik het proggie start dan knippert het LCD wel een beetje, maar of dat er nou iets mee te maken heeft?
Met smartie werkt het LCD wel dus het ligt niet aan de LCD.
Iemand die mij kan helpen?
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
70
71
72
73
| var
Form1: TForm1;
LCD_CONTROL_ADDRESS : longint = $380;
LCD_DATA_ADDRESS : longint = $378;
implementation
{$R *.dfm}
procedure DlPortWritePortUchar(Port : longint;Value : byte)stdcall;
external 'C:\Windows\System32\DLPORTIO.DLL';
procedure LCD_WriteControl(data : byte);
begin
DlPortWritePortUchar(LCD_CONTROL_ADDRESS, $B);
DlPortWritePortUchar(LCD_DATA_ADDRESS, data);
DlPortWritePortUchar(LCD_CONTROL_ADDRESS, $A);
DlPortWritePortUchar(LCD_CONTROL_ADDRESS, $B);
DlPortWritePortUchar(LCD_CONTROL_ADDRESS, $9);
Sleep(100);
end;
procedure LCD_WriteControl2(data : byte);
begin
DlPortWritePortUchar(LCD_CONTROL_ADDRESS, $B);
DlPortWritePortUchar(LCD_DATA_ADDRESS, data);
DlPortWritePortUchar(LCD_CONTROL_ADDRESS, $3);
DlPortWritePortUchar(LCD_CONTROL_ADDRESS, $B);
DlPortWritePortUchar(LCD_CONTROL_ADDRESS, $9);
Sleep(100);
end;
procedure LCD_WriteData(data : byte);
begin
DlPortWritePortUchar(LCD_CONTROL_ADDRESS, $7);
DlPortWritePortUchar(LCD_DATA_ADDRESS, data);
DlPortWritePortUchar(LCD_CONTROL_ADDRESS, $6);
DlPortWritePortUchar(LCD_CONTROL_ADDRESS, $7);
DlPortWritePortUchar(LCD_CONTROL_ADDRESS, $5);
Sleep(10);
end;
procedure LCD_WriteData2(data : byte);
begin
DlPortWritePortUchar(LCD_CONTROL_ADDRESS, $7);
DlPortWritePortUchar(LCD_DATA_ADDRESS, data);
DlPortWritePortUchar(LCD_CONTROL_ADDRESS, $6);
DlPortWritePortUchar(LCD_CONTROL_ADDRESS, $7);
DlPortWritePortUchar(LCD_CONTROL_ADDRESS, $5);
Sleep(10);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
LCD_WriteControl($38);
Sleep(50);
LCD_WriteControl2($38);
Sleep(50);
LCD_WriteControl($38);
Sleep(50);
LCD_WriteControl2($38);
Sleep(50);
LCD_WriteControl($38);
LCD_WriteControl2($38);
LCD_WriteControl($38);
LCD_WriteControl2($38);
LCD_WriteControl($6);
LCD_WriteControl2($6);
LCD_WriteControl($C);
LCD_WriteControl2($C);
LCD_WriteControl($1);
LCD_WriteControl2($1);
end; |
Het probleem: Hij doet helemaal niks!!
Ik heb het proggie in Delphi 6 geschreven en hij start ook op. Hij cleared het display helemaal niet. De 2 zwarte balken blijven staan.
Wat doe ik fout?
Oh ja als ik het proggie start dan knippert het LCD wel een beetje, maar of dat er nou iets mee te maken heeft?
Met smartie werkt het LCD wel dus het ligt niet aan de LCD.
Iemand die mij kan helpen?