7 Led Gadget
<klugscheissermodus>walker hat geschrieben: LED = Light Emitting Display = leuchtet von selbst (wie kleine Leichtdioden)
LCD = Liquid Crystal Display = kein eigenes leuchten
LED = Light-Emitting Diode
aus diesem Grunde heisst es ja auch: LED-Display und LC-Display

</klugscheissermodus>
Grüße ... Kiffi
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Bei LCD's kommt die Helligkeit von der Hintergrundbeleuchtung oder vom Umgebungslicht(transparenter Spiegel hinter dem Display). Beim LCD wird Licht polarisiert, dann wird die schwingungsebene um 90 ° mit den Flüssigkristallmolekülen gedreht und durch den oberen Polarisator hindurchgeleitet. Wenn ein elektrisches Feld an einer Stelle ist, dann bricht die Ordnung der Kristallmolekülen zusammen und es findet keine Doppelbrechung mehr statt(schwarzes feld im display). Dann ist da noch die Ansteuerung mittels Passiv und Aktivmatrix.Kiffi hat geschrieben:<klugscheissermodus>walker hat geschrieben: LED = Light Emitting Display = leuchtet von selbst (wie kleine Leichtdioden)
LCD = Liquid Crystal Display = kein eigenes leuchten
LED = Light-Emitting Diode
aus diesem Grunde heisst es ja auch: LED-Display und LC-Display
</klugscheissermodus>
Grüße ... Kiffi
[EDIT]
Wollte nur das "kein eigenes leuchten" erklären

Zuletzt geändert von DarkDragon am 06.06.2005 17:44, insgesamt 1-mal geändert.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
- vonTurnundTaxis
- Beiträge: 2130
- Registriert: 06.10.2004 20:38
- Wohnort: Bayreuth
- Kontaktdaten:
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Warum nicht Du?Thatsanee hat geschrieben:Hallo,
hat das vielleicht schon jemand für PB4 umgesetzt ?
Gruß Thatsanee
Hab keine 5 Minuten gebraucht, ohne SourceKonverter

Code: Alles auswählen
; PureBasic 3.93
; Idea from Localmotion34
; De préférence utilisez un gadget ayant un rapport de 11 * 13 ex 110 / 130
; angepaßt an PB4 by ts-soft
Structure SevenSegmentLed
x.l
y.l
width.l
height.l
Image.l
Gadget.l
value.l
point.l
color1.l
color2.l
BackgroundColor.l
EndStructure
;{ Datasection
DataSection
Led:
; Segment a
Data.l 1,1,1,-1,6,0,1,1,-1,1,-6,0,-1,-1,0,0
; Segment g
Data.l 1,6,1,-1,6,0,1,1,-1,1,-6,0,-1,-1,0,0
; Segment d
Data.l 1,11,1,-1,6,0,1,1,-1,1,-6,0,-1,-1,0,0
; Segment f
Data.l 1,1,1,1,0,3,-1,1,-1,-1,0,-3,1,-1,0,0
; Segment b
Data.l 9,1,1,1,0,3,-1,1,-1,-1,0,-3,1,-1,0,0
; Segment e
Data.l 1,6,1,1,0,3,-1,1,-1,-1,0,-3,1,-1,0,0
; Segment c
Data.l 9,6,1,1,0,3,-1,1,-1,-1,0,-3,1,-1,0,0
; Point
Data.l 10,11,1,1,-1,1,-1,-1,1,-1,0,0
; Fin dessin Leds
Data.l 0,0
SegmentA:
Data.l 5,1
SegmentB:
Data.l 9,3
SegmentC:
Data.l 9,8
SegmentD:
Data.l 5,11
SegmentE:
Data.l 1,9
SegmentF:
Data.l 1,4
SegmentG:
Data.l 5,6
SegmentP:
Data.l 10,12
EndDataSection
;}
ProcedureDLL SevenSegmentLed(x,y,width,height,color1,color2,BackgroundColor)
; Initialise the LinkedList the first call
Static Init
If Init=0
Global NewList SevenSegmentLedLList.SevenSegmentLed()
EndIf
Init=1
; Fill the Structure
AddElement(SevenSegmentLedLList())
SevenSegmentLedLList()\x=x
SevenSegmentLedLList()\y=y
SevenSegmentLedLList()\width=width
SevenSegmentLedLList()\height=height
SevenSegmentLedLList()\color1=color1
SevenSegmentLedLList()\color2=color2
SevenSegmentLedLList()\BackgroundColor=BackgroundColor
SevenSegmentLedLList()\Image=CreateImage(#PB_Any,width,height)
PWidth.f=SevenSegmentLedLList()\width/11
PHeight.f=SevenSegmentLedLList()\height/13
;/ Dessine les Leds
StartDrawing(ImageOutput(SevenSegmentLedLList()\Image))
Box(0,0,SevenSegmentLedLList()\width,SevenSegmentLedLList()\height,SevenSegmentLedLList()\BackgroundColor)
Restore Led
Repeat
Read x
Read y
If x=0 And y=0 : Break : EndIf
Repeat
Read a
Read b
If a=0 And b=0 : Break : EndIf
Line(x*PWidth,y*PHeight,a*PWidth,b*PHeight,color1)
x=x+a : y=y+b
ForEver
ForEver
StopDrawing()
; create the gadget & show the image
SevenSegmentLedLList()\Gadget=ImageGadget(#PB_Any,SevenSegmentLedLList()\x,SevenSegmentLedLList()\y,width,height,ImageID(SevenSegmentLedLList()\Image),#PB_Image_Border)
; Return the gadget id
ProcedureReturn ListIndex(SevenSegmentLedLList())
EndProcedure
ProcedureDLL SevenSegmentLedSet(id,value)
SelectElement(SevenSegmentLedLList(),id)
SevenSegmentLedLList()\value=value
PWidth.f=SevenSegmentLedLList()\width/11
PHeight.f=SevenSegmentLedLList()\height/13
;/ Allume les Segments
StartDrawing(ImageOutput(SevenSegmentLedLList()\Image))
; Eteind les segments
Restore SegmentA
For n=1 To 8
Read a
Read b
FillArea(a*PWidth,b*PHeight,SevenSegmentLedLList()\color1,SevenSegmentLedLList()\BackgroundColor)
Next
Select value
Case 0
temp.s="abcdef"
Case 1
temp="bc"
Case 2
temp="abged"
Case 3
temp="abgcd"
Case 4
temp="fbgc"
Case 5
temp="afgcd"
Case 6
temp="afedgc"
Case 7
temp="abc"
Case 8
temp="abcdefg"
Case 9
temp="abcdfg"
EndSelect
; Gestion du point
If SevenSegmentLedLList()\point=1
temp+"p"
EndIf
For n=1 To Len(temp)
Select Mid(temp,n,1)
Case "a"
Restore SegmentA
Case "b"
Restore SegmentB
Case "c"
Restore SegmentC
Case "d"
Restore SegmentD
Case "e"
Restore SegmentE
Case "f"
Restore SegmentF
Case "g"
Restore SegmentG
Case "p"
Restore SegmentP
EndSelect
Read a
Read b
FillArea(a*PWidth,b*PHeight,SevenSegmentLedLList()\color1,SevenSegmentLedLList()\color2)
Next
StopDrawing()
SetGadgetState(SevenSegmentLedLList()\Gadget,ImageID(SevenSegmentLedLList()\Image))
EndProcedure
ProcedureDLL SevenSegmentLedGet(id)
SelectElement(SevenSegmentLedLList(),id)
ProcedureReturn SevenSegmentLedLList()\value
EndProcedure
Procedure SevenSegmentLedEvent(id)
SelectElement(SevenSegmentLedLList(),id)
ProcedureReturn SevenSegmentLedLList()\Gadget
EndProcedure
Procedure SevenSegmentLedPoint(id,light)
SelectElement(SevenSegmentLedLList(),id)
SevenSegmentLedLList()\point=light
EndProcedure
;/ Test
OpenWindow(0,0,0,580,290,"7 Segment Led",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
SevenSegmentLed(10,10,220,260,8404992,16776960,10485760)
SevenSegmentLed(250,10,110,130,4227072,65280,4210688)
SevenSegmentLed(400,10,55,65,1118481,255,0)
SevenSegmentLed(455,10,55,65,1118481,255,0)
SevenSegmentLed(510,10,55,65,1118481,255,0)
For n= 0 To 9
For i=1 To 4
SevenSegmentLedSet(i,Random(9))
SevenSegmentLedPoint(i,Random(1))
Next i
SevenSegmentLedSet(0,n)
Beep_(1000,25)
Delay(500)
Next n
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Gibt bei mir:ts-soft hat geschrieben: Warum nicht Du?
Hab keine 5 Minuten gebraucht, ohne SourceKonverter![]()
[14:49:13][COMPILER]Line64:Invalid name: same as an external command

FYI:Verdacht bestätigt: liegt an der droopylib

Wenn ich SevenSegmentLed durch SevenSegmentLed2 ersetze, klappts auch hier.
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
seit 17.12.08: PB 4.3 unter XP Home(SP3)
- dllfreak2001
- Beiträge: 2925
- Registriert: 07.09.2004 23:44
- Wohnort: Bayern
Also ein Taschenrechner aus dieser zeit kann auch über ein Display in Gasentladungstechnik verfügen (keine Seltenheit).
Das sind kleine Gasentladungslampen die man durch Hochspannung zum Leuchten bringt.
Das erkennt man an einem kleinen Gitternetz (Falls das MAterial nicht milchig ist) das über die Leuchtsegmente gezogen ist. Teilweise wurde diese Technik bei
Stereoanlagendisplays und Videorecordern bis Ende der Neunziger gemacht oder noch länger/immernoch.
Mein Bruder hat ne neue Anlage von Aiwa und die hat ein eben solches Display.
Das sind kleine Gasentladungslampen die man durch Hochspannung zum Leuchten bringt.
Das erkennt man an einem kleinen Gitternetz (Falls das MAterial nicht milchig ist) das über die Leuchtsegmente gezogen ist. Teilweise wurde diese Technik bei
Stereoanlagendisplays und Videorecordern bis Ende der Neunziger gemacht oder noch länger/immernoch.
Mein Bruder hat ne neue Anlage von Aiwa und die hat ein eben solches Display.
I´a dllfreak2001