title image


Smiley Würfelproblem gelöst....
Hi Uli!



mir hat deine Würfel-Idee keine Ruhe gelassen und ich habs mal eben zwischen zwei Klassenarbeiten ausprobiert.

Benötigt wird ein 8-Bit breiter Port (hier PortA)

An Bit = wird ein Taster gegen Masse geklemmt.

An Bit1 bis 7 kommen LEDs die würfelartig angeordnet sind:



7-----6



5--4--3



2-----1



Hier der Quellcode in BasCom-Basic mit kommentar:



$regfile = "8535DEF.DAT" ..............'ATmega8535-Definitions datei laden

$crystal = 1000000 ......................'Angabe des Taktes, hier völlig unnötig



Dim Zahl As Integer .....................'Variable für die gewürfelte Zahl



Ddra = &B11111110 .....................'PortA Bit0 als Ein-, alle anderen Bits als Ausgang

Porta = &B00000001 ....................'Pullup von Bit0 aktivieren



Do

Zahl = Rnd(6) + 1 ...................'ständiges Würfeln ohne Anzeige, damit es wirklich "zufällig" wird.

If Pina.0 = 0 Then ................'wenn der Taser gedrückt ist

Select Case Zahl ...............'gewürfelte Zahl überprüfen und anzeigen

Case 1 : Porta = &B00010001

Case 2 : Porta = &B10000011

Case 3 : Porta = &B10010011

Case 4 : Porta = &B11000111

Case 5 : Porta = &B11010111

Case 6 : Porta = &B11101111

End Select

Waitms 500 .....................'warten zum entprellen des Tasters und verzögerung vor nächstem Wurf

While Pina.0 = 0 .................'sinnlosschleife, die wartet bis taster losgelassen wird (kein dauerwürfeln möglich

Wend

Waitms 100 ...................'Entprellen beim Loslassen des Tasters

End If

Loop

End .......................'fertig ;o)



Das wars...

Kann man sicher noch etwas eleganter machen: Constante Sechs=&B11101111 usw definieren, Pina.0 den Alias Eingang geben usw...



Gruß

Carsten


Vermeintliche Tippfehler in diesem Posting sind keineswegs Rechtschreibfehler sondern Vorschläge für die nächste Rächtschraiprevorm ;o)



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: