Suche $include "_2704_i2c.bas"

Berty

Neues Mitglied
5 Feb 2018
3
0
1
76
Hallo,

ich bin neu im Forum, weil ich mit der Ansteuerung von I2C-Displays unter Bascom nicht klarkomme. Die Bascom-Lib lcd_i2c nützt mir nichts, da meine PCF-Pinbelegung auf dem Modul abweicht. Ich möchte wissen, an was für exotische Displays die Autoren wohl gedacht haben. Meine Pinbelegung ist die übliche:

'PCF8574

'P7 = D7

'P6 = D6

'P5 = D5

'P4 = D4

'P3 = 1 = backlight on / 0 = backlight off

'P2 = E

'P1 = RW

'P0 = RS



Mit großem Interesse habe ich die Beiträge zur alternativen Ansteuerung von I2C-LCD verfolgt. Cassio machte etliche Vorschläge, die konnte ich aber nicht nutzen, da ich die benötigten Include-Dateien wie z.B. $include "_2704_i2c.bas" beim besten Willen nicht finden konnte. Meine Frage: Wo kann ich sie herunterladen?

Mit freundlichen Grüßen

Berty
 

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3.089
57
48
Hennigsdorf
Sprachen
BascomAVR, Assembler
. Die Bascom-Lib lcd_i2c nützt mir nichts, da meine PCF-Pinbelegung auf dem Modul abweicht.
Hmm... AN #118 hilft Dir nicht weiter?
...ZIP archive contains 2 sets of libraries, original and moded version, moded version allow user to modify pin mapping between PCF8574 and LCD display ...
Zu Cassios Projekt kann ich nichts (mehr) sagen, ist schon 'ne Weile her, und war meiner Erinnerung nach 'n umfangreicherer Thread.
Meine Pinbelegung ist die übliche
Ist das irgendwo standardisiert? Der PCF8574 ist doch einfach nur ein I²C-zu-parallel-Converter (quasi-parallel -> Jeder "Ausgang" kann entweder auf Gnd geschaltet werden, oder über eine 100µA-Stromquelle auf Vcc. Gelesen wird der tatsächliche Zustand, der ggf extern gegen die Pullup-Quelle auf Gnd gezogen werden kann. Also weder ein belastbarer High-Pegel, noch Tristate.)

P.S.: Willkommen im Forum...
 

Berty

Neues Mitglied
5 Feb 2018
3
0
1
76
Hallo LotadeC!
Du hast schon recht, wenn Du sagst, dass der PCF8474 praktisch nur den empfangenen I2C-Wert an seinen Ausgängen einstellt. Aber die Frage ist, wie diese Pins mit den Anschlüssen des LCD verbunden werden. Das ist im Grunde frei wählbar, wenn man selber die Schaltung entwirft. Bei fertigen I2C-Display-Modulen ist diese aber vorgegeben. Deshalb weicht meine PCF-Pinbelegung von der von Bascom vorgegebenen ab. Natürlich könnte ich das anpassen, wenn ich eine eigene Schaltung entwerfe. Ich möchte aber mein industrielles Modul benutzen. Inzwischen habe ich im Internet die "$lib "YwRobot_Lcd_i2c.lib" gefunden, die genau meiner Pinblegung entspricht.
Mit freundlichen Grüßen
Berty
 

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3.089
57
48
Hennigsdorf
Sprachen
BascomAVR, Assembler
Wahrscheinlich wird derjenige, der die Bibliothek erstellt hat ein Dispay mit ebender Verdrahtung, gehabt haben. Warum soll nun gerade Dein Display die Referenz darstellen, und seins der Exot sein? Es gibt meiner Meinung nach keinen Standard.
Und daß Du eben die Verdrahtung nicht anpassen willst, hab ich schon angenommen. Deswegen hab ich ja extra auf AN #118 hingewiesen, konkret auf die "modded Version", die dem Anwender erlaubt, das Pin-Mapping entsprechend seiner vorhandenen/erwünschten tatsächlichen Verdrahtung anzupassen.
Bei der modifizierten Version werden nämlich vor dem Senden hier:
Code:
  BST  _temp1, 0
* BLD  _temp2, PCF_D4
  BST  _temp1, 1
* BLD  _temp2, PCF_D5
  BST  _temp1, 2
* BLD  _temp2, PCF_D6
  BST  _temp1, 3
* BLD  _temp2, PCF_D7
  BST  _temp1, 4
* BLD  _temp2, PCF_RS
  BST  _temp1, 5
* BLD  _temp2, PCF_RW
  BST  _temp1, 6
* BLD  _temp2, PCF_E2
  BST  _temp1, 7
* BLD  _temp2, PCF_E1
 *BASIC: i2csend pcf8574_LCD, _temp2
die einzelnen Bits nacheinander (aufsteigend von 0..7)aus dem Byte "_temp1" entnommen, und nacheinander (über das T-Flag) in "_temp2" übertragen - aber dort nicht mehr an derselben Bit-Stelle, sondern entsprechend der Konstanten "PCF_D4", PCF_D5", "PCF_E1" usw. Gesendet wird dann nicht "_temp1", sondern das ggf umsortiert kopierte "_temp2".

Du hättest also in Deinem Programm lediglich diese Konstanten entsprechend Deiner tatsächlichen Verdrahtung bekanntmachen müssen
Code:
Const PCF_D4=0
Const PCF_D5=1
...
Const PCF_E1=7
und die modifizierte Lib inkludieren und verwenden können...
 

Berty

Neues Mitglied
5 Feb 2018
3
0
1
76
Hallo LotadeC!
Ich habe Deine Empfehlung noch einmal genauer angeschaut. Die Lib ist tatsächlich universell anzupassen. Danke für den Tip. Ihn werde ich morgen gleich einmal praktisch ausprobieren. Natürlich ist mein Display-Modul kein absoluter Standard, aber es ist recht gebräuchlich und ich habe mich darauf eingestellt. Die preiswerten Arduino-Display-Module verwenden gleichfalls diese Pinbelegung. Noch einmal herzlichen Dank!
Frreundliche Grüße
Norbert
 

Cassio

Aktives Mitglied
29 Okt 2008
4.027
17
38
Region Hannover
Sprachen
BascomAVR
Hallo zusammen!

Ich bin leider zu selten hier und damit auch viiiiiel zu spät um noch helfen zu können. :rolleyes:

Trotzdem möchte ich der Vollständigkeit halber erwähnen, dass die gesuchten "Include"-Dateien alle drei in DIESEM Beitrag zu sehen sind.
Man muss lediglich den jeweiligen Subroutinen-Code in eine Bascom-Datei kopieren und dann der Datei den passenden Namen geben. ;)


Viele Grüße,
Cassio
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)