7 Led Gadget

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Ich hab auchn Taschenrechner mit LED-Display - scheint mir zumindest so.
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
walker
Beiträge: 278
Registriert: 29.08.2004 18:39
Wohnort: Bayern

Beitrag von walker »

Hi,

LED = Light Emitting Display = leuchtet von selbst (wie kleine Leichtdioden)
LCD = Liquid Crystal Display = kein eigenes leuchten

damit solltest Du Deinen Rechner einstufen können.... 8)

cu
Ulf
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

walker hat geschrieben: LED = Light Emitting Display = leuchtet von selbst (wie kleine Leichtdioden)
LCD = Liquid Crystal Display = kein eigenes leuchten
<klugscheissermodus>

LED = Light-Emitting Diode

aus diesem Grunde heisst es ja auch: LED-Display und LC-Display ;-)

</klugscheissermodus>

Grüße ... Kiffi
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

jup, war mir aber nicht sicher, weil es grün leuchtet
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Kiffi hat geschrieben:
walker hat geschrieben: LED = Light Emitting Display = leuchtet von selbst (wie kleine Leichtdioden)
LCD = Liquid Crystal Display = kein eigenes leuchten
<klugscheissermodus>

LED = Light-Emitting Diode

aus diesem Grunde heisst es ja auch: LED-Display und LC-Display ;-)

</klugscheissermodus>

Grüße ... Kiffi
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.

[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.
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag von vonTurnundTaxis »

DarkDragon hat geschrieben: Bei LCD's.
[nerv] tztztz [/nerv]
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
Thatsanee
Beiträge: 116
Registriert: 11.03.2005 05:12

Beitrag von Thatsanee »

Hallo,

hat das vielleicht schon jemand für PB4 umgesetzt ?

Gruß Thatsanee
Mrs. Thatsanee
PB 4 - PB 3.94
Benutzeravatar
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

Beitrag von ts-soft »

Thatsanee hat geschrieben:Hallo,

hat das vielleicht schon jemand für PB4 umgesetzt ?

Gruß Thatsanee
Warum nicht Du?
Hab keine 5 Minuten gebraucht, ohne SourceKonverter :D

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 
Gruß
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.
Bild
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

ts-soft hat geschrieben: Warum nicht Du?
Hab keine 5 Minuten gebraucht, ohne SourceKonverter :D
Gibt bei mir:
[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)
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Beitrag von dllfreak2001 »

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.
I´a dllfreak2001
Antworten