lCD unter C++ und IO Warior 40

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Frank S.
Posts: 29
Joined: Fri Feb 25, 2005 11:53 am

lCD unter C++ und IO Warior 40

Post by Frank S. »

Hallo.

Nach dem ich endlich die direckten Ein- und Ausgaben über den IO Wariior zum Laufenbekommen habe, möchte ich nun ein LCD - Display ansteuern. Ich habe eine erweiterte Klasse iowclass.h bekommen, in der die LCD funtkionen integiret sind. Doch leider stürtzt das Programm bei einigen Funkitonen ab. Meißtens bei LCD_Int. Ist irgenwo ein Fehler in der Klasse?

ULONG LCD_Enable()
{

ULONG bytes;
char data[7];

data[0] = 0x04;
data[1] = 0x01;


bytes = IowKitWrite(m_devHandle, 1, data, 8);

return bytes;
}

ULONG LCD_Disable()
{

ULONG bytes;
char data[7];

data[0] = 0x04;
data[1] = 0x00;


bytes = IowKitWrite(m_devHandle, 1, data, 8);

return bytes;
}

ULONG LCD_Init()
{
ULONG bytes;
char data[7];

data[0] = 0x05;
data[1] = 0x03;
data[2] = 0x28 | 0x10;
data[3] = 0x01;
data[4] = 0x0F;

bytes = IowKitWrite(m_devHandle, 1, data, 8);

return bytes;
}

ULONG LCD_Cmd(int cmd)
{
ULONG bytes;
char data[7];

data[0] = 0x05;
data[1] = 0x01;
data[2] = cmd;

bytes = IowKitWrite(m_devHandle, 1, data, 8);

return bytes;
}

ULONG LCD_Set_Addr(int addr)
{
ULONG bytes;
char data[7];

data[0] = 0x05;
data[1] = 0x01;
data[2] = (0x80 | addr);

bytes = IowKitWrite(m_devHandle, 1, data, 8);

return bytes;
}




ULONG LCD_String(char *string)
{
ULONG bytes;
char data[7];
int nchars=0;
int nnow=0;
int ncurr=0;

data[0]=0x05;

nchars = strlen(string);
while (ncurr < nchars)
{
if ((ncurr+6)>nchars)
{
nnow = nchars - ncurr;
}
else
{
nnow = 6;
}

data[1] = (0x80 | nnow);

for (int x=0; x<nnow; x++)
{
data[x+2] = string[x+ncurr];
}

bytes = IowKitWrite(m_devHandle, 1, data, 8);

ncurr = ncurr +6;
}
return bytes;
}

Schöne Grüße
Frank S.
supachris
Posts: 124
Joined: Tue Mar 16, 2004 12:30 am
Location: Dresden

Post by supachris »

Sieht verdammt nach meinem Quellcode aus ;)
Nee, die Methoden sind OK, bei mir gehn die Super. Sowhl am IOW40 als auch am IOW24, mit einem normalen 2x16 LCD. Hast du mal im Debugmodus probiert (F5)? Und dann per Einzelschritt mit F10? Wo bleibt der dann hängen?
Frank S.
Posts: 29
Joined: Fri Feb 25, 2005 11:53 am

LCD unter C++

Post by Frank S. »

Hallo.

Es handelt sich dabei um Deine Klasse. Danke für den Tip. Ich werde es mal ausprobieren. Ich benutze allerdings ein LCD 1 x 8.

Kann es vielleicht auch ein Feheler am LCD selbst sein?

Schöne Ostern
Frank S.
supachris
Posts: 124
Joined: Tue Mar 16, 2004 12:30 am
Location: Dresden

Post by supachris »

Hmm..bei mir stürzt der nichmal ab wenn das LCD gar nicht dran ist.
Frank S.
Posts: 29
Joined: Fri Feb 25, 2005 11:53 am

LCD und C++

Post by Frank S. »

Hallo.

Ich habe noch einmal etwas ausprobiert.

1. Ich habe den IO Warior gestartet.
2. Ich habe die Funktion LCD_Enable aufgerufen. Pin 0.5 und 0.3 gingen auf Low Potential.
3. Ich habe die Funktion LCD_Init aufgerufen. Pin 0.4 ging auf Low Potential. Nun reagiert das Programm nicht mehr.
4. Ich habe das Programm neu gestartet, konnte aber auf den IOW nicht zugreifen.
5. Erstals den IO Warior neu eingesteckt habe, konnte ich wieder auf Ihn zugreifen.

Kann es vielleicht daran liegen, dass ich anstatt eine 6 Mhz Resonators einen 6 MHz Quarz benutze und deshalb nicht richtig anspricht?

Schöne Ostern
Frank S.
Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

Scheiss Hacker. Im alten Forum stand genug dazu.
Nein, ein Quarz funktioniert nicht zuverlaesig. Der Chip ist fuer Resonatoren optimiert.
supachris
Posts: 124
Joined: Tue Mar 16, 2004 12:30 am
Location: Dresden

Post by supachris »

Das hättest du ja auch gleich sagen können. Wenn dann musst du einen Oszillator nehmen, wo gleich rechteck rauskommt, der geht wohl auch ganz gut. Aber wie man den anschließt, stand....richtig! Im alten Forum...
Frank S.
Posts: 29
Joined: Fri Feb 25, 2005 11:53 am

Quarz

Post by Frank S. »

Hallo.

Danke für die Antworten. Dann hat sich das Rätsel ja gelöst. Kann jemand noch die Schlatung einstellen?

Schöne Grüße
Frank S.
Frank S.
Posts: 29
Joined: Fri Feb 25, 2005 11:53 am

Resonatoren

Post by Frank S. »

Hallo.

Ich habe mal bei den Versandhäusern nachgeschaut. Reichelt hatte SMD Keramik Resonatoren CSTCC 6 MHz im Angebot. Kann ich diese auch verwenden?
Oder gibt es auch eine andere Quelle, wo man solche Einelteile als Privatmann bekommen kann?

Schöne Ostern
Frank S.
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Re: Resonatoren

Post by Guido Körber »

Ich kenne die Murata Typen nicht alle auswendig, wichtig ist auf jeden Fall einen zweibeinigen Resonator zu nehmen, die dreibeinigen funktionieren noch schlechter als die Quartze.

Segor hat die richtigen Teile im Programm.
Frank S.
Posts: 29
Joined: Fri Feb 25, 2005 11:53 am

Problem besteht weiterhin

Post by Frank S. »

Hallo.

Ich habe mir über Segor den passenden Resonator besorgt. Ich habe bei der Bestellung extra den Berwendungszweck angeben. Heute habe ich den Resonator bekommen und gleich eingebaut. Der Fehler besteht aber weiterhin. Es funktioieren nur die Funktionen LCD Ein und LCD Aus. Wenn ich weitere Funktionen ansprechen, stürzt das Programm und der Baustein weiter hin ab. Gibt es noch eine Möglichkeit, woran es liegen könnte?

Schöne Grüße
Frank Steenblock
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Ist das denn auf einer Starterkitplatine, oder selber gebastelt?
Frank S.
Posts: 29
Joined: Fri Feb 25, 2005 11:53 am

Problem

Post by Frank S. »

Hallo.

Es ist auf einer Starterkit Platine. Kann es sein, dass ich den Resonator falsch herum eingebaut habe?

Schöne Grüße
Frank S.
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Nein, der hat keine Polung
Frank S.
Posts: 29
Joined: Fri Feb 25, 2005 11:53 am

Versionen

Post by Frank S. »

Hallo.

Ich habe im Moment auch keine Erklärung. Vielleicht helfen aber die einzelnen Versionen weiter. ICh habe einen IO Waario 40 der Version V1.0.2.1 und vernwende die dll iowkit.dll mit der Version 1.2.4.0. Kann es dort vielleicht zu Problemen kommen.

Schöne Grüße
Frank S.
Post Reply