Learning BASCOM - Lernen von Anfang an

Also wenn an Port.C alles einwandfrei arbeitet, scheiden Fehler am Anschuss und der Software schon mal aus!
bis auf Probleme in der Lib, die evtl mit PortA nicht so recht will. Evtl bei der
Adressierung der Register was daneben ... :confused:

Es kann also nur an Port.A liegen.... bzw. die Verbindung!
Hast du die evtl. "Rückwärts" angechlossen? So dass A.0 nun am Abgang A.7 ist?

Würde einem ggf. beim Shiften der LEDs ja nicht unbedingt auffallen.... ;)
hast du natürlich recht. Grand mal untersucht ...
Pin40(PA0) auf Pin1(Bit0 an der Leiste)
Pin33(PA7) auf Pin8(Bit7 an der Leiste)
also die beiden Enden des Ports stimmen und wenn dann was anderes falsch
wär würde man es beim Shiften an Unregelmäßigkeiten sehen. Also alles
richtig gelötet. Betriebsspannung (Vcc/GND) ist auch richtig dran. Also keine
Phantomspeisung über den Port.

ICH HAB DEN FEHLER GEFUNDEN ! ...:D :D :D
Ich hab bei der Pfostenleiste auf der Ober- und Unterseite den Pin1
markiert. Aber unten genau falschrum. Dadurch sind bei mir auf der Leiste
die Bits verschachtelt. Da ich nur auf der Unterseite mit der Markierung
nachgeprüft habe hab ichs nicht gleich gemerkt. Jetzt beim Durchmessen
mit dem Multimeter ist es aufgefallen. Also ist bei mir folgendes beschaltet ...
1 - Bit1
2 - Bit0
3 - Bit3
4 - Bit2
5 - Bit5
6 - Bit4
7 - Bit7
8 - Bit6
9 - GND
10 - Vcc
Wenn man 2 Reihen von LEDs hat dann fällt diese Spiegelung beim Shiften
auch nicht auf. Und bei der Kontrolle kann man sich auch mal schnell vertun.
Also muß ich den Lötkolben anheizen und ein wenig Fehler wegbrutzeln :D

Nur komisch das Vcc und GND richtig dran sind. Evtl durch eine Arbeitpause
mal anders gedacht und dann richtig angeschlossen.

Gruß
Dino
 
Ich hab bei der Pfostenleiste auf der Ober- und Unterseite den Pin1
markiert. Aber unten genau falschrum.

Hallo Dino!

Also doch!

Hatte ich doch richtig vermutet. Einfach nur etwas vertauscht! :)

Du musst also nicht extra eine "Lib", oder BASCOM, auseinander nehmen... zumal es bei Anderen problemlos funktioniert! ;)


Na, dann kommt ja bestimmt gleich die positive Rückmeldung.... nebst Bilder. :D


Gruß,
Cassio
 
Hallo,

Hatte ich doch richtig vermutet. Einfach nur etwas vertauscht! :)
erzähl doch nix ... :D

Du musst also nicht extra eine "Lib", oder BASCOM, auseinander nehmen... zumal es bei Anderen problemlos funktioniert! ;)
Den Fehler hat bestimmt einer hinter meinem Rücken eingebaut um mich
zu ärgern :eek: :D :rolleyes:

Na, dann kommt ja bestimmt gleich die positive Rückmeldung.... nebst Bilder. :D
Die Bilder sollst du haben ...
P1030750.JPG P1030751.JPG
Einmal mit deinem Programm und einmal mit meinem ;)
Es läuft :D

Ich schätze mal das mir die Vertauschung auch bei meinen Versuchen mit
den GLCDs in die Suppe gespuckt hat. Also gehts jetzt in die Vollen ;)

Gruß
Dino
 
Ich schätze mal das mir die Vertauschung auch bei meinen Versuchen mit
den GLCDs in die Suppe gespuckt hat. Also gehts jetzt in die Vollen ;)

Hi Dino!

Na, dann kann es jetzt ja richtig los gehen! :)

Dann mal her mit den GLCDs und rein mit dem Programmcode!
Ich schätze mal, nun kommen die Lektionen bis 20 im Minutenrythmus! :D


Viel Spaß weiterhin,
Cassio :ciao:
 
Hi Cassio,

Dann mal her mit den GLCDs und rein mit dem Programmcode!
Ich schätze mal, nun kommen die Lektionen bis 20 im Minutenrythmus! :D
mal ruhig angehen lassen ...
Als nächstes hab ich mal ein wenig mit Timer0 vor und da brauch ich nen LCD
(Character-LCD reicht) um ein wenig mehr als Blink-LEDs anzuzeigen ;)
Folgende Sachen hab ich vor ...

1. Füllstandsanzeige für Zisterne mit kapazitiver Messung.

2. mal sehen ob man eine selbstkallibrierende DCF77-Lib zusammenbauen kann.
Die soll mit nem beliebigen Timer laufen und sich selber auf die Polarität und
Länge der Impulse einkallibrieren. Aber da laß ich mich mal überraschen :D

Nummer 1 hat da aber absolute Priorität.

Gruß
Dino
 
Spielereien mit Timer0-Overflow und Interrupts

Hallo zusammen,

der nächste Schritt ...
Ich hab mal den Timer0 im Timer-Mode mit Overflow-Interrupt konfiguriert.
Läuft gut und rennt auf dem LCD jetzt als Zähler mit der Anzahl der
Überläufe durch.

Hier mal der aktuelle Code ...


CodeBox BASCOM

' Testprogramm für mein Pollin-Nachbau-Board
' Der Zustand von PinD2 (Taster1) wird in die Variable A geschoben
' Variable A wird dann binär auf PortC ausgegeben.
' Ich habe damit versucht meine Entprell-Routine aus Assembler im Prinzip
' nachzubauen. Zur Sichtbarmachung habe ich eine Wartezeit von 100ms eingebaut.
' Da sieht man natürlich keinen Prellvorgang mehr. Richtig funktionieren wird
' sie erst unter voller Systemgeschwindigkeit.
' Das LCD läuft jetzt (nach ein wenig Lötarbeit) an allen Ports. Außerdem ist
' Timer0 jetzt mit Overflow als Interruptquelle am arbeiten.

' #############################################################################
' ##### Definitionen ##########################################################
' #############################################################################

' Prozessor ATmega8535 (lag grade so rum)
' 8k Flash, 512Byte SRAM, 512Byte EEPROM
$regfile = "m8535.dat"

' Prozessor ATmega16 (wers braucht)
' $regfile = "m16def.dat"

' Prozessor ATmega32 (wers braucht)
' $regfile = "m32def.dat"

' 16MHz Quarztakt
$crystal = 16000000

' Hab ich abgekupfert ;-)
$hwstack = 32
$swstack = 10
$framesize = 40


' #############################################################################
' ##### Variablen #############################################################
' #############################################################################

' Was Byte-mässiges
Dim A As Byte
A = 1
Dim B As Integer
B = 0
Dim B_alt As Integer
B_alt = B


' #############################################################################
' ##### Initialisierung #######################################################
' #############################################################################


' ==============================================
' Die Ports auf dem Eval-Board und ihre Belegung
' ==============================================

' DDRx => Datenrichtung des Portpins
' 0=Eingang , 1=Ausgang

' PORTx => Ausgang oder PullUp
' 0=GND/PullUp aus , 1=Vcc/PullUp an

' PINx => Eingang (Pin abfragen)

' === PortA ============================
' PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0
' - - - - - - - -
' Alle Portbits können verwendet werden
Ddra = &B1111_1111
Porta = &B0000_0000
' ======================================

' === PortB ============================
' PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0
' SCK MOSI MISO - - - - -
' Alle Portbits können verwendet werden
' Bei PB5..7 aber Einschränkung wegen ISP
Ddrb = &B1111_1111
Portb = &B0000_0000
' ======================================

' === PortC ============================
' PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0
' - - - - - - SDA SCL
' Alle Portbits können verwendet werden
' Bei I2C-Bus (TWI) sind PC0+1 aber belegt
Ddrc = &B1111_1111
Portc = &B0000_0000
' ======================================

' === PortD ============================
' PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0
' Buz LD2 LD1 T3 T2 T1 TxD RxD
' Hier sind beim Eval-Board Taster, LEDs
' Buzzer und RS232 dran
Ddrd = &B1110_0000
Portd = &B0000_0000
' ======================================
' ======================================
' ======================================


' ======================================
' === LCD-Initialisierung ==============
' ======================================
' Umschaltbyte für Anzeige : 0 = Chip 1 / 1 = Chip 2
Dim ___lcdno As Byte
' with the config lcdpin statement you can override the compiler settings
Config Lcd = 40 * 4

' LCD an PORT-A läuft auch !
Config Lcdpin = Pin , Db4 = Porta.0 , Db5 = Porta.1 , Db6 = Porta.2 , Db7 = Porta.3 , E = Porta.4 , E2 = Porta.5 , Rs = Porta.6

' LCD an PORT-B läuft sofort problemlos
'Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.4 , E2 = Portb.5 , Rs = Portb.6

' LCD an PORT-C läuft auch
'Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.4 , E2 = Portc.5 , Rs = Portc.6

Config Lcdbus = 4

' === oberen Chip 1 einschalten und initialisieren ===
___lcdno = 0
Initlcd
Cls
' === unteren Chip 2 einschalten und initialisieren ===
___lcdno = 1
Initlcd
Cls
' ======================================
' ======================================
' ======================================


' ======================================
' === Timer0-Initialisierung ===========
' ======================================
' TimerCounter0 im Timer-Mode mit Prescaler 1024
Config Timer0 = Timer , Prescale = 1024
' ISR für Timer0-Overflow definieren
On Ovf0 Tim0_isr

' Interrupts für Timer0 anschalten
Enable Timer0
' Interrupts global aktivieren
Enable Interrupts

' ======================================
' ======================================
' ======================================


Locate 1 , 1
Lcd "Schieberegister A :"
Locate 2 , 1
Lcd "Timer0 Durchlaeufe:"



' #############################################################################
' ##### Hauptschleife #########################################################
' #############################################################################

Do

Waitms 100

' Da es in Bascom keinen SHIFT-Befehl gibt der mit dem in Assembler
' vergleichbar ist mußte ich ein wenig improvisieren ...

' Also Variable um 1 Bit nach links schieben ( X<--B7<B6<B5<B4<B3<B2<B1<B0<--0 )
' Bit 7 fällt aus der Variablen raus und in Bit 0 wird eine Null geschoben
Shift A , Left , 1

' Wenn PinD.2 gesetzt ist (Taster 1 gedrückt) dann
If Pind.2 = 1 Then
' Setze Bit 0 in Byte-Variable A
Set A.0
End If

' Variable binär auf PortC ausgeben
Portc = A

' Nur 1-Bits eingeschoben => Taster vollständig gedrückt, Prellen hat aufgehört
If A = 255 Then
' LED 1 anschalten
Portd.5 = 1
End If

' Nur 0-Bits eingeschoben => Taster vollständig geöffnet, Prellen hat aufgehört
If A = 0 Then
' LED 1 ausschalten
Portd.5 = 0
End If

' Es wird nur auf das LCD geschrieben wenn sich B in der Zwischenzeit
' durch die Timer0-ISR geändert hat. Dann wird der neue Wert ausgegeben
' und für die nächste Überprüfung auf Änderung in B_alt gespeichert.
' Das entlastet das System von unnötigen LCD-Ausgaben
If B_alt <> B Then
Locate 2 , 20
Lcd B ; " "
B_alt = B
Locate 1 , 20
Lcd A ; " "
End If

Loop


' #############################################################################
' ##### Interrupt-Service-Routinen ############################################
' #############################################################################

' ======================================
' === ISR für Timer0-Overflow ==========
' ======================================
'the following code is executed when the timer rolls over
Tim0_isr:
Incr B
If B > 1023 Then B = 0
Return
' ======================================
' ======================================
' ======================================


' #############################################################################
' ##### Subroutinen ###########################################################
' #############################################################################



End

' #############################################################################
' ##### Programmende ##########################################################
' #############################################################################

und wieder als Download ... Anhang anzeigen L05_Timer0.bas

Nach meinen Berechnungen und wenn ich die richtige Formel gefunden habe
sollte der Timer0 jetzt mit

fOV = fCPU / ( Prescaler * 256 )

fOV = 16000000 / ( 1024 * 256 ) = 61,0351Hz laufen.

ziemlich krumme Zahl und für ne Uhr nicht wirklich zu gebrauchen ;)
Aber wenn man den Zähler von den Timer-Überläufen so auf dem LCD
beobachtet dann paßt der Wert ungefähr. Die Hunderter des Zählers
sind etwas schneller als 2 Sekunden.

Gruß
Dino
 
Hi Dino !

Na, wenn du schon deine LCD-Ausgaben ein wenig optimierst, dann kannst du auch andere Abläufe "tunen". ;)

Anstatt deines Codes:


CodeBox Bascom

' ======================================
' === ISR für Timer0-Overflow ==========
' ======================================

'the following code is executed when the timer rolls over
Tim0_isr:
Incr B
If B > 1023 Then B = 0
Return

' ======================================
' ======================================
' ======================================



kanns du auch:


CodeBox Bascom

' ======================================
' === ISR für Timer0-Overflow ==========
' ======================================

'the following code is executed when the timer rolls over
Tim0_isr:
If B < 1023 Then
Incr B
Else
B = 0
End If
Return

' ======================================
' ======================================
' ======================================


Damit muss der Controller die Variable "B" nur dann um eins hochzählen,
wenn der Wert noch klein genug ist.
Ansonsten kann er gleich die Variable auf Null zurück setzen. :)

Gruß,
Cassio
 
Hi Cassio,

Na, wenn du schon deine LCD-Ausgaben ein wenig optimierst, dann kannst du auch andere Abläufe "tunen". ;)

Anstatt deines Codes:


CodeBox Bascom

' ======================================
' === ISR für Timer0-Overflow ==========
' ======================================

'the following code is executed when the timer rolls over
Tim0_isr:
Incr B
If B > 1023 Then B = 0
Return

' ======================================
' ======================================
' ======================================



kanns du auch:


CodeBox Bascom

' ======================================
' === ISR für Timer0-Overflow ==========
' ======================================

'the following code is executed when the timer rolls over
Tim0_isr:
If B < 1024 Then
Incr B
Else
B = 0
End If
Return

' ======================================
' ======================================
' ======================================


Damit muss der Controller die Variable "B" nur dann um eins hochzählen,
wenn der Wert noch klein genug ist.
Ansonsten kann er gleich die Variable auf Null zurück setzen. :)
Dein Code ist aber im Betrieb anders als meiner. Und zwar in dem was
nachher beim Überlauf der Variable B passiert.
Bei mir kommt aus der ISR folgendes ...
1022, 1023, 0, 1, 2, 3, ...
und bei dir ...
1022, 1023, 1024, 0, 1, 2, 3, ...
Das ist das Problemchen ;)
Der Teufel steckt mal wieder im Detail :D

Um das zu ändern müßtest du also auf <1023 testen. Außerdem weiß ich
nicht ob im Endeffekt meine Version im Code nicht doch etwas kürzer ist
weil es in Assembler nur ein Vergleich mit Sprung über die Ladeoperation für
Variable B ist und bei dir im Assembler nachher 2 Sprünge benötigt werden.
Und da das Increment relativ kurz im Code sein sollte könnte man sich jetzt
streiten was den kürzeren Code liefert. Was aber auf jeden Fall schlechter
ist, das ist eine Version mit B=B+1 statt des INCR B. Ich denke
also auch in Bascom noch sehr stark in den Assembler-Befehlen :D Evtl könnte
deine Version in der Durchlaufzeit durch die ISR geringfügig besser sein. Aber
das müßte man wirklich ausprobieren was Bascom im Endeffekt daraus macht.

Gruß
Dino
 
Hi Cassio,


Dein Code ist aber im Betrieb anders als meiner. Und zwar in dem was
nachher beim Überlauf der Variable B passiert.
Bei mir kommt aus der ISR folgendes ...
1022, 1023, 0, 1, 2, 3, ...
und bei dir ...
1022, 1023, 1024, 0, 1, 2, 3, ...
Das ist das Problemchen ;)
Der Teufel steckt mal wieder im Detail :D

Hi Dino!

Sorry !
Stimmt natürlich, dass es "< 1023" heißen muss. :cool:

Denn wenn "B" erst 1022 ist, kann er ja noch einen hinzu zählen und das sind dann erst 1023!
Bei der nächsten Prüfung wird er dann aber die Variable auf Null setzen! :)

Letztlich mache ich das beim Stellen von Uhrzeiten mittels Taster auch so...
Da wird ja auch bei < 59 noch um eines hochgezählt (auf 59) und dann erst auf Null zurück gesetzt. ;)

Warum ich meine Variante bevorzuge wirst du mal bemerken, wenn du etwas stückweise mit einer Taste hoch zählst und mit der Anderen wieder runter.
So kannst du dann immer gleich auf die entgegengesetzte "Endposition" springen und weiter zählen. :)

Gruß,
Cassio
 
HI Dino,
ich kann Dir nur die Daumen halten und viel, viel, viel, erfolg wünschen... Vielleicht hast du ja auch mitbekommen, was ich an BASCOM vermisse,,, die Gleitkommaarithmetik, wie sie in dem billigsten, Taschenrechner für 5 Eu. auch schon vorhanden ist.....

Die Thechnisch-wissenschaftlichen Funktionen...

-- Das AH-Besik für 8052 beherrscht solche wissenshftliche Funktionen, daher ist es für mich verwunderlich, dass ein neueres BASIC-Dialekt, diese funktionen nicht beherrscht....
-- Alles andere, ausser Gleitkommaaritmethik, erledige ich lieber in Assembler, auch wenn ich diesen für die AVR´s noch "üben" muss..
 
... was ich an BASCOM vermisse,,, die Gleitkommaarithmetik, wie sie in dem billigsten, Taschenrechner für 5 Eu. auch schon vorhanden ist.....

Die Thechnisch-wissenschaftlichen Funktionen...

Wie? Verstehe ich nicht.

Welche Gleitkommaaritmetik vermisst du denn?

hier z.B. aus der Wurzel (Square root)

Syntax
var = SQR( source )

Remarks

var A numeric single or double variable that is assigned with the SQR of variable source.

source The single or double variable to get the SQR of.


When SQR is used with a single, the FP_TRIG library will be used.
When SQR is used with bytes, integers, words and longs, the SQR routine from MCS.LBX will be used.
+-*/ wirst du wohl nicht gemeint haben.

CU:ciao:
merlin.r
 
Erstes GLCD läuft ...

Hallo zusammen,

es geht langsam weiter. Nachdem ich ja den einen Port Bitmäßig sortiert und
richtig angeschlossen habe ging es ohne Probleme ...
P1040030.JPG
und hier das Programm von Cassio das ich "entrümpelt" und auf das nötigste
gekürzt habe. Es sind alle DCF77-, 1Wire-, ...-Routinen rausgeflogen. Es
ist also nur die reine Initialisierung, Textausgabe und Grafikoperationen übrig.

Hier das BASCOM-Programm : Anhang anzeigen Cassio_T6963_LM6270-GLCD.bas

EDIT: Ich hab mal die Kontrastspannung bei mir gemessen damit man einen
Anhaltspunkt hat wenn mal nix auf dem Display zu sehen ist ...
-5,0V : Alle Pixel hell. Nix zu sehen
-6,7V : Anzeige gut sichtbar. +/-0,3V Regelbereich wenn es nicht ganz paßt
-8,7V Alles duster. Die Anzeige ist ganz schwach zu erahnen.

Gruß
Dino
 
Ein kleiner "Logik-Analysator"

Hallo zusammen,

ich hab mal weitergebastelt und die drei Taster als Logikpegel auf dem Display
angezeigt. Sozusagen ein Super-Mini-Logik-Analysator ;) Pro 10ms wird ein
Pixel geschrieben. Das sieht dann so aus ...
P1040065.JPG

und der Quellcode ...
Anhang anzeigen Dino_T6963_LM6270_LA.bas

Das könnte man jetzt noch mit Sample-Speicher und solchem Kram erweitern.
Mal sehen was sich daraus so entwickelt ;)

Gruß
Dino
 
Hallo,

sieht aus wie ein Grafikfehler ... -duckundweg- :vroam:
Meinst du so mit etwas viel Bitgezappel am Display ? :D Wackelkontakt ? :p

Ich versuch das mal auf 4 Kanäle mit Sample-Speicher zu erweitern. Mal sehen
wann das was wird.

Aber das Display hat tatsächlich Grafikfehler ;) Der Schmutz auf der rechten
Hälfte ist auskristallisiertes Flüssigkristall des Displays. Dank der ganz tollen
Transportverpackung von Pollin. Zum Glück bekommt man unbürokratisch
Ersatz geliefert. Für produktiven Betrieb ist das Display nicht zu gebrauchen.
Für ein paar Versuche geht es aber. Das Auge interpoliert dann den Schmutz
auf dem Display einfach weg :eek: :D

MERKE: Das Flüssigkristall mag keine harten Stöße oder starke Schwankungen
der Temperatur.
(kann aber auch durch Überalterung passieren)

Gruß
Dino
 
Ne,
also ich glaube Werwolf meint wohl eher die - iii pfui -
braunen Kleckse auf'm Display mit "Grafikfehler" :D .....

Grüssle :pleasantry:
und wech
Wolfgang

Eh'm sorry, haste ja schon erklärt... war ich wohl nicht ganz durch mit lesen.
 
Debug/Info-Display etwas schöner verdrahtet

Hallo,

ich hab mal etwas gesäubert ...
P1040264.JPG
Die LCD-Pins sind jetzt etwas besser verdrahtet und gegen abreißen
gesichert. An zweien hab ich wohl schon etwas zu viel rumgebrutzelt.
Die mußte ich schon über Fädeldraht direkt an der Leiterbahn abgreifen
weil die Lötflächen sich gelöst haben.

P1040265.JPG
Hier mal eine Detailaufnahme der neuen Verdrahtung.

P1040266.JPG
So sieht es dann in der Komplettversion aus.

P1040267.JPG
Wieder im Detail ...

P1040269.JPG
Und der Anschluß des Flachbandkabels. Den freien Pin habe ich an eine LED
gelegt. Die kann man dann bei Tests toggeln lassen um zu sehen ob der
Atmel noch lebt.

Mir ist dabei allerdings was aufgefallen ... Bis jetzt habbe ich nie Probleme
mit der Kontaktgabe von Pfostensteckern mit dem Flachbandkabel gehabt.
Allerdings habe ich hier 2x ganz neue Pfostenstecker gecrimpt und beide
mal Kontaktprobleme bzw Kurzschlüsse zwischen den Pins gehabt. Das
LCD wollte auf jeden Fall nicht. Es wurde nicht initialisiert. Dann habe ich
den Pfostenstecker wieder abgenommen und Ader für Ader mit einer kleinen
Flachzange in die Kontakte befördert. Also Ader in das V des Kontakts
gelegt und mit leicht geöffneter Flachzange heruntergedrückt damit die
Schneidfläche des Kontakts (das V) sich zwischen den Backen der Zange
bewegen kann und nur die Ader heruntergedrückt wird. AUF KEINEN FALL
MIT EINEM SCHRAUBENDREHER DIE ADERN REINDRÜCKEN ! Das verbiegt
die Schneidflächen und man bekommt keinen sauberen Kontakt mehr.
Nach der Methode hat es dann endlich funktioniert. Ich weiß nicht ob da
bei Reichelt eine muffige Charge an Pfostensteckern im Lager gelandet ist
oder obes an der Kombination mit meinem Flachbandkabel liegt. Aber das
Kabel hat bis jetzt mit allen anderen Steckern sauber funktioniert. :confused:
Ich werde mir das auf jeden Fall nochmal etwas genauer ansehen ...

Was mir auch noch bei den Steckern aufgefallen ist ... die Zugentlastungen
rasten nicht sauber ein wenn man sie reindrückt. Die lösen sich wieder wenn
man am Kabel zieht. Da weiß ich auch noch nicht wo dran das genau liegt.
Sowas hab ich bei Steckern von Reichelt eigentlich noch nie gehabt. Die
waren sonst immer einwandfrei. :confused:

EDIT : Ich hab jetzt mal ein anderes Flachbandkabel gecrimpt da mein GLCD
auch noch sauberer verdrahtet werden soll. Anscheinend liegt es am Kabel.
Die Stecker scheinen empfindlich zu sein wenn die Isolierung des Flachband-
kabels nicht ganz genau so ist wie der Stecker es erwartet. Bei dem das ich
jetzt verwendet habe sind die Zwischenstege zwischen den einzelnen Adern
nicht ganz so dick und die Isolierung der Adern ist etwas runder. Jetzt läßt
sich auch die Zugentlastung sauber einklippen.

Nochn EDIT : Ich hab mal zwei (einen der letzten und einen von der Lieferung
davor) gegeneinandergehalten. Sie sind anscheinend von zwei verschiedenen
Herstellern. Sehen auf jeden Fall minimal anders aus. Die Stecker, die ich vor
der letzten Lieferung von Reichelt bekommen hab waren da nicht ganz so
zickig bei der Wahl des Kabels.

Gruß
Dino
 
Hallo zusammen,

nun ist mein Grafik-LCD auch "schnelleinsatzfähig" ...
P1040323.JPG P1040324.JPG
links : mit Beleuchtung und Toggle-LED (das kleine rote oben links)
rechts : Anschluß über 2x STK500 kompatible Stecker

P1040325.JPG
einmal mit aufgesetzter Adapterplatine

P1040326a.JPG
und mit abgenommener Platine.

P1040326b.JPG
hier einmal die Platine im Detail. Das IC ist ein MAX232. Der ist billiger als
irgend ein anderer Spannungswandler :D Was für eine diabolische
Verschwendung (frei nach Miss Marple - Mörder Ahoi) :p Also der MAX
erzeugt mir die -10V für die Kontrasteinstellung (kleines Poti). Der MOSFET
ist ein IRLU2905 der mir die 5V/0,5A für die Hintergrundbeleuchtung schaltet.
Ich hab da noch 3x 2,2Ohm in Reihe geschaltet damit die LEDs nicht total
ohne Vorwiderstand sind. Bei der Toggel-LED sind 1,2k in Reihe. Aber die LED
ist nen bischen dunkel (ist ne alte LED). Die muß ich nochmal gegen ne
hellere tauschen. Und wegen der Hintergrundbeleuchtung hab ich einiges an
Elkos und Vielschicht-Cs auf der Platine verteilt um Stromspitzen aufzufangen
wenn ich mal PWM machen will.

Gruß
Dino
 

Ü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)