<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.ccc-mannheim.de/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Lightcube%2FFirmware</id>
	<title>Lightcube/Firmware - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://www.ccc-mannheim.de/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Lightcube%2FFirmware"/>
	<link rel="alternate" type="text/html" href="https://www.ccc-mannheim.de/mediawiki/index.php?title=Lightcube/Firmware&amp;action=history"/>
	<updated>2026-04-18T10:48:00Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in C3MAWiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://www.ccc-mannheim.de/mediawiki/index.php?title=Lightcube/Firmware&amp;diff=300&amp;oldid=prev</id>
		<title>Scytale: hat Lightcube:Firmware nach Lightcube/Firmware verschoben: Der Trenner für Namespaces ist &quot;:&quot;, der für Unterseiten ist &quot;/&quot;; das hier verwirrt nur die Software und mich. ;)</title>
		<link rel="alternate" type="text/html" href="https://www.ccc-mannheim.de/mediawiki/index.php?title=Lightcube/Firmware&amp;diff=300&amp;oldid=prev"/>
		<updated>2008-01-10T12:23:10Z</updated>

		<summary type="html">&lt;p&gt;hat &lt;a href=&quot;/mediawiki/index.php?title=Lightcube:Firmware&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Lightcube:Firmware (Seite nicht vorhanden)&quot;&gt;Lightcube:Firmware&lt;/a&gt; nach &lt;a href=&quot;/wiki/Lightcube/Firmware&quot; title=&quot;Lightcube/Firmware&quot;&gt;Lightcube/Firmware&lt;/a&gt; verschoben: Der Trenner für Namespaces ist &amp;quot;:&amp;quot;, der für Unterseiten ist &amp;quot;/&amp;quot;; das hier verwirrt nur die Software und mich. ;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{pausiertes Projekt|Kontakt=TheMaverick|öffentlich=ja}}&lt;br /&gt;
&lt;br /&gt;
Hier ist meine funktionierende Firmware für den Cube. Der Code wurde mit Bascom / Ponyprog auf den AVR gespeichert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code qbasic&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;                                     &amp;#039;AVR Chip configuration&lt;br /&gt;
$crystal = 16000000                                         &amp;#039;AVR soll auf 16MHz laufen&lt;br /&gt;
&lt;br /&gt;
Baud = 28800                                                &amp;#039;Serielle Schnittstelle auf 28.800 Baud setzen&lt;br /&gt;
&lt;br /&gt;
Config Porta = Output                                       &amp;#039;Kanäle auf Output setzen&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
Config Portc = Output&lt;br /&gt;
&lt;br /&gt;
Declare Sub Activate_led(byval Led As String)&lt;br /&gt;
Declare Sub Demomovie(byval Demo As String , Byval D_speed As String )&lt;br /&gt;
&lt;br /&gt;
Dim Eingabe As String * 364&lt;br /&gt;
Dim I As Integer&lt;br /&gt;
Dim Leds(64) As String * 3&lt;br /&gt;
Dim Count As Integer&lt;br /&gt;
Dim Typsetzer As Byte                                       &amp;#039;typ 0 = led, 1 = speed, 2 = demo&lt;br /&gt;
Dim Waiter As Integer&lt;br /&gt;
Dim Speed As String * 3&lt;br /&gt;
Dim Schnitt As String * 1&lt;br /&gt;
Dim Movie As String * 1&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
   Input Eingabe                                            &amp;#039;Texteingabe für die Darstellung erwarten&lt;br /&gt;
&lt;br /&gt;
   If Left(eingabe , 1) = &amp;quot;a&amp;quot; And Right(eingabe , 1) = &amp;quot;z&amp;quot; Then&lt;br /&gt;
&lt;br /&gt;
      &amp;#039;Variablen zur¸cksetzen start&lt;br /&gt;
      Speed = &amp;quot;&amp;quot;&lt;br /&gt;
      Waiter = 0&lt;br /&gt;
      Typsetzer = 0&lt;br /&gt;
      For I = 0 To Count&lt;br /&gt;
         Leds(i) = &amp;quot;&amp;quot;&lt;br /&gt;
      Next I&lt;br /&gt;
      Count = 0&lt;br /&gt;
      Movie = &amp;quot;&amp;quot;&lt;br /&gt;
      &amp;#039;Variablen zur¸cksetzen ende&lt;br /&gt;
&lt;br /&gt;
      For I = 0 To Len(eingabe) Step 1&lt;br /&gt;
         Schnitt = Mid(eingabe , I , 1)&lt;br /&gt;
         Select Case Schnitt&lt;br /&gt;
            Case &amp;quot;x&amp;quot;&lt;br /&gt;
               Typsetzer = 0                                &amp;#039;auf led setzen&lt;br /&gt;
               Count = Count + 1&lt;br /&gt;
            Case &amp;quot;a&amp;quot;&lt;br /&gt;
               &amp;#039;Typsetzer = 0                                &amp;#039;auf led setzen&lt;br /&gt;
&lt;br /&gt;
            Case &amp;quot;m&amp;quot;&lt;br /&gt;
               Typsetzer = 2                                &amp;#039;auf demo setzen&lt;br /&gt;
&lt;br /&gt;
            Case &amp;quot;s&amp;quot;&lt;br /&gt;
               Typsetzer = 1                                &amp;#039;auf speed setzen&lt;br /&gt;
&lt;br /&gt;
            Case &amp;quot;z&amp;quot;&lt;br /&gt;
               &amp;#039;Typsetzer = 0                                &amp;#039;auf led setzen&lt;br /&gt;
               Exit For&lt;br /&gt;
&lt;br /&gt;
            Case Else&lt;br /&gt;
               If Typsetzer = 1 Then                        &amp;#039;wenn speed dann&lt;br /&gt;
                  Speed = Speed + Mid(eingabe , I , 1)&lt;br /&gt;
               Elseif Typsetzer = 2 Then&lt;br /&gt;
                  Movie = Movie + Mid(eingabe , I , 1)&lt;br /&gt;
               Else                                         &amp;#039;wenn led dann&lt;br /&gt;
                  Leds(count) = Leds(count) + Mid(eingabe , I , 1)&lt;br /&gt;
               End If&lt;br /&gt;
         End Select&lt;br /&gt;
      Next I&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
   Waiter = Val(speed)&lt;br /&gt;
   &lt;br /&gt;
   If Waiter &amp;lt; 1 Then&lt;br /&gt;
      Waiter = 1&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
   While Ischarwaiting() = 0&lt;br /&gt;
      If Len(movie) &amp;gt; 0 Then&lt;br /&gt;
&lt;br /&gt;
         Call Demomovie(movie , Speed)&lt;br /&gt;
&lt;br /&gt;
      Else&lt;br /&gt;
&lt;br /&gt;
         For I = 0 To Count Step 1&lt;br /&gt;
&lt;br /&gt;
            If Len(leds(i)) &amp;gt; 0 Then&lt;br /&gt;
               Call Activate_led(leds(i))                   &amp;#039;led anzeigen, 3 Zahlen ¸bergeben als string z.B.: 123&lt;br /&gt;
               Waitms Waiter&lt;br /&gt;
            End If&lt;br /&gt;
&lt;br /&gt;
            If 0 &amp;lt;&amp;gt; Ischarwaiting() Then&lt;br /&gt;
               Exit For&lt;br /&gt;
               Exit While&lt;br /&gt;
            End If&lt;br /&gt;
&lt;br /&gt;
         Next I&lt;br /&gt;
&lt;br /&gt;
      End If&lt;br /&gt;
   Wend&lt;br /&gt;
   Porta = 0&lt;br /&gt;
   Portb = 0&lt;br /&gt;
   Portc = 0&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
Sub Activate_led(byval Led As String * 3)&lt;br /&gt;
&lt;br /&gt;
   Dim Istx_s As String * 1&lt;br /&gt;
   Dim Istx As Byte&lt;br /&gt;
   Dim Isty_s As String * 1&lt;br /&gt;
   Dim Isty As Byte&lt;br /&gt;
   Dim Istz_s As String * 1&lt;br /&gt;
   Dim Istz As Byte&lt;br /&gt;
&lt;br /&gt;
   Porta = 0&lt;br /&gt;
   Portb = 0&lt;br /&gt;
   Portc = 0&lt;br /&gt;
&lt;br /&gt;
   Istx_s = Mid(led , 1 , 1)                                &amp;#039;erste Ziffer auslesen&lt;br /&gt;
   Istx = Val(istx_s) - 1&lt;br /&gt;
&lt;br /&gt;
   Isty_s = Mid(led , 2 , 1)                                &amp;#039;zweite Ziffer auslesen&lt;br /&gt;
   Isty = Val(isty_s) - 1&lt;br /&gt;
&lt;br /&gt;
   Istz_s = Mid(led , 3 , 1)                                &amp;#039;dritte Ziffer auslesen&lt;br /&gt;
   Istz = Val(istz_s) - 1&lt;br /&gt;
&lt;br /&gt;
   Porta.istx = 1&lt;br /&gt;
   Portb.isty = 1&lt;br /&gt;
   Portc.istz = 1&lt;br /&gt;
&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
&amp;#039;//// DEMOMOVIES ////////////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
Sub Demomovie(byval Demo As String , Byval D_speed As String * 3)&lt;br /&gt;
   Dim Demomovie As Integer&lt;br /&gt;
   Demomovie = Val(demo)&lt;br /&gt;
&lt;br /&gt;
   Dim Demospeed As Integer&lt;br /&gt;
   Demospeed = Val(d_speed)&lt;br /&gt;
&lt;br /&gt;
   Select Case Demomovie&lt;br /&gt;
      Case 1&lt;br /&gt;
         For I = 0 To 7&lt;br /&gt;
            Porta = 0&lt;br /&gt;
            Portb = 0&lt;br /&gt;
            Portc = 0&lt;br /&gt;
&lt;br /&gt;
            Porta.i = 1&lt;br /&gt;
            Portb.i = 1&lt;br /&gt;
            Portc.i = 1&lt;br /&gt;
&lt;br /&gt;
            If 0 &amp;lt;&amp;gt; Ischarwaiting() Then&lt;br /&gt;
               Exit For&lt;br /&gt;
               Exit Function&lt;br /&gt;
               Exit For&lt;br /&gt;
               Exit While&lt;br /&gt;
            End If&lt;br /&gt;
&lt;br /&gt;
            Waitms Demospeed&lt;br /&gt;
&lt;br /&gt;
            If 0 &amp;lt;&amp;gt; Ischarwaiting() Then&lt;br /&gt;
               Exit For&lt;br /&gt;
               Exit Function&lt;br /&gt;
               Exit For&lt;br /&gt;
               Exit While&lt;br /&gt;
            End If&lt;br /&gt;
&lt;br /&gt;
         Next I&lt;br /&gt;
      Case 2&lt;br /&gt;
         Dim Demo2image(56) As String * 3&lt;br /&gt;
         Demo2image(1) = &amp;quot;111&amp;quot;&lt;br /&gt;
         Demo2image(2) = &amp;quot;222&amp;quot;&lt;br /&gt;
         Demo2image(3) = &amp;quot;333&amp;quot;&lt;br /&gt;
         Demo2image(4) = &amp;quot;444&amp;quot;&lt;br /&gt;
         Demo2image(5) = &amp;quot;555&amp;quot;&lt;br /&gt;
         Demo2image(6) = &amp;quot;666&amp;quot;&lt;br /&gt;
         Demo2image(7) = &amp;quot;777&amp;quot;&lt;br /&gt;
         Demo2image(8) = &amp;quot;888&amp;quot;&lt;br /&gt;
&lt;br /&gt;
         Demo2image(9) = &amp;quot;788&amp;quot;&lt;br /&gt;
         Demo2image(10) = &amp;quot;688&amp;quot;&lt;br /&gt;
         Demo2image(11) = &amp;quot;588&amp;quot;&lt;br /&gt;
         Demo2image(12) = &amp;quot;488&amp;quot;&lt;br /&gt;
         Demo2image(13) = &amp;quot;388&amp;quot;&lt;br /&gt;
         Demo2image(14) = &amp;quot;288&amp;quot;&lt;br /&gt;
         Demo2image(15) = &amp;quot;188&amp;quot;&lt;br /&gt;
         Demo2image(16) = &amp;quot;277&amp;quot;&lt;br /&gt;
         Demo2image(17) = &amp;quot;366&amp;quot;&lt;br /&gt;
         Demo2image(18) = &amp;quot;455&amp;quot;&lt;br /&gt;
         Demo2image(19) = &amp;quot;544&amp;quot;&lt;br /&gt;
         Demo2image(20) = &amp;quot;633&amp;quot;&lt;br /&gt;
         Demo2image(21) = &amp;quot;722&amp;quot;&lt;br /&gt;
         Demo2image(22) = &amp;quot;811&amp;quot;&lt;br /&gt;
&lt;br /&gt;
         Demo2image(23) = &amp;quot;821&amp;quot;&lt;br /&gt;
         Demo2image(24) = &amp;quot;831&amp;quot;&lt;br /&gt;
         Demo2image(25) = &amp;quot;841&amp;quot;&lt;br /&gt;
         Demo2image(26) = &amp;quot;851&amp;quot;&lt;br /&gt;
         Demo2image(27) = &amp;quot;861&amp;quot;&lt;br /&gt;
         Demo2image(28) = &amp;quot;871&amp;quot;&lt;br /&gt;
         Demo2image(29) = &amp;quot;881&amp;quot;&lt;br /&gt;
         Demo2image(30) = &amp;quot;772&amp;quot;&lt;br /&gt;
&lt;br /&gt;
         Demo2image(31) = &amp;quot;663&amp;quot;&lt;br /&gt;
         Demo2image(32) = &amp;quot;554&amp;quot;&lt;br /&gt;
         Demo2image(33) = &amp;quot;445&amp;quot;&lt;br /&gt;
         Demo2image(34) = &amp;quot;336&amp;quot;&lt;br /&gt;
         Demo2image(35) = &amp;quot;227&amp;quot;&lt;br /&gt;
         Demo2image(36) = &amp;quot;118&amp;quot;&lt;br /&gt;
         Demo2image(37) = &amp;quot;218&amp;quot;&lt;br /&gt;
&lt;br /&gt;
         Demo2image(38) = &amp;quot;318&amp;quot;&lt;br /&gt;
         Demo2image(39) = &amp;quot;418&amp;quot;&lt;br /&gt;
         Demo2image(40) = &amp;quot;518&amp;quot;&lt;br /&gt;
         Demo2image(41) = &amp;quot;618&amp;quot;&lt;br /&gt;
         Demo2image(42) = &amp;quot;718&amp;quot;&lt;br /&gt;
         Demo2image(43) = &amp;quot;818&amp;quot;&lt;br /&gt;
         Demo2image(44) = &amp;quot;727&amp;quot;&lt;br /&gt;
&lt;br /&gt;
         Demo2image(45) = &amp;quot;636&amp;quot;&lt;br /&gt;
         Demo2image(46) = &amp;quot;545&amp;quot;&lt;br /&gt;
         Demo2image(47) = &amp;quot;454&amp;quot;&lt;br /&gt;
         Demo2image(48) = &amp;quot;363&amp;quot;&lt;br /&gt;
         Demo2image(49) = &amp;quot;272&amp;quot;&lt;br /&gt;
         Demo2image(50) = &amp;quot;181&amp;quot;&lt;br /&gt;
&lt;br /&gt;
         Demo2image(51) = &amp;quot;171&amp;quot;&lt;br /&gt;
         Demo2image(52) = &amp;quot;161&amp;quot;&lt;br /&gt;
         Demo2image(53) = &amp;quot;151&amp;quot;&lt;br /&gt;
         Demo2image(54) = &amp;quot;141&amp;quot;&lt;br /&gt;
         Demo2image(55) = &amp;quot;131&amp;quot;&lt;br /&gt;
         Demo2image(56) = &amp;quot;121&amp;quot;&lt;br /&gt;
&lt;br /&gt;
         For I = 1 To 56&lt;br /&gt;
&lt;br /&gt;
            Call Activate_led(demo2image(i))&lt;br /&gt;
&lt;br /&gt;
            If 0 &amp;lt;&amp;gt; Ischarwaiting() Then&lt;br /&gt;
               Exit For&lt;br /&gt;
               Exit Function&lt;br /&gt;
               Exit For&lt;br /&gt;
               Exit While&lt;br /&gt;
            End If&lt;br /&gt;
&lt;br /&gt;
            Waitms Demospeed&lt;br /&gt;
&lt;br /&gt;
            If 0 &amp;lt;&amp;gt; Ischarwaiting() Then&lt;br /&gt;
               Exit For&lt;br /&gt;
               Exit Function&lt;br /&gt;
               Exit For&lt;br /&gt;
               Exit While&lt;br /&gt;
            End If&lt;br /&gt;
&lt;br /&gt;
         Next I&lt;br /&gt;
   End Select&lt;br /&gt;
&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
--[[Benutzer:TheMaverick|TM]] 22:49, 2. Dez. 2006 (CET)&lt;/div&gt;</summary>
		<author><name>Scytale</name></author>
	</entry>
</feed>