Cheepit Sparrow
Online-Bascom
Bisher gab es ja schon Online-Compiler für C und Assembler. Lange haben
wir überlegt, ob auch Bascom online laufen könnte. Eine Anfrage bei
Mark Alberts ergab, dass die Demoversion dafür eigentlich nicht
zulässig ist, dass wir aber speziell für dieses Projekt die Erlaubnis
bekommen, sie online zu stellen. Wer tiefer in Bascom einsteigen
möchte, sollte nach wie vor seine persönliche Version von https://www.mcselec.com
beziehen.
Jetzt gibt es also den Online-Bascom-Compiler in einer Beta-Version.
Einige Probleme wie die Ausgabe von Fehlermeldungen sind noch nicht
gelöst. Aber trotzdem kann man schon sehr bequem mit dem Compiler
arbeiten. Besonders das Testen kleiner Änderungen an einem
bestehenden Programm ist nun sehr einfach geworden. Das erste Beispiel
ist übrigens auf diese Weise entstanden. Ich habe ein vorhandenes
Beispiel (die LED-Kerze mit dem Tiny13)
genommen und im Online-Fenster für den Sparrow angepasst. In diesem
Fall musste der bisherige PWM-Ausgang A durch den Ausgang B ersetzt
werden, damit er die grüne LED auf dem Sparrow nutzt. Aber jetzt kann
jeder seine eigenen Änderungen ausprobieren auch ganz andere
Quelltexte bearbeiten.
Hier einige ältere Apps im Bascom-Quelltext. Damit kann man nun
experimentieren, den Quelltext in den Editor kopieren, Änderungen
probieren, downloaden, fertig.
RS-Schalter
Ein
RS-Flipflop hat zwei Eingänge, einen zum Einschalten (Set) und einen
zum Ausschalten (RS). Genauso funktionierte diese App. S2 schaltet
beide LEDs ein und S1 schaltet sie aus.
http://tiny.systems/categorie/cheepit/RSSchalter.html
'Sparrow_RS.bas on/off LEDs
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 8
$swstack = 4
$framesize = 4
Config Portb = &B000011010
Dim T As Byte
Dim N As Byte
Led1 Alias Portb.1
Led2 Alias Portb.3
S1 Alias Pinb.0
S2 Alias Pinb.2
Led1 = 1
Led2 = 1
T = 20
Do
If S1 = 0 Then
Led1 = 0
Led2 = 0
End If
If S2 = 0 Then
Led1 = 1
Led2 = 1
End If
Loop
End
Toggle-Schalter
Die
Funktion dieser App entspricht der zweier Toggle-Flipflops. Einmal
drücken = An, nochmal drücken = Aus. Und das getrennt für beide Taster,
die jeweils ihre eigene LED schalten.
http://tiny.systems/categorie/cheepit/ToggleSchalter.html
'Sparrow_Toggle.bas on/off LEDs
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 8
$swstack = 4
$framesize = 4
Config Portb = &B000011010
Dim T As Byte
Dim N As Byte
Led1 Alias Portb.1
Led2 Alias Portb.3
S1 Alias Pinb.0
S2 Alias Pinb.2
Led1 = 1
Led2 = 1
T = 20
Do
If S1 = 0 Then
Toggle Led1
Waitms 50
Do
Loop Until S1 = 1
Waitms 50
End If
If S2 = 0 Then
Toggle Led2
Waitms 50
Do
Waitms 50
Loop Until S2 = 1
End If
Loop
End
Entspannungslicht
Die
grüne LED wird über den PWM-Ausgang wellenartig langsam gedimmt und
wieder aufgeblendet. Die Geschwindigkeit ist über die Taster
einstellbar. Da das Auge kein lineares Empfinden für die Helligkeit
besitzt wird hier durch Quadrieren einer Laufvariablen eine
Parabelfunktion realisiert.
http://tiny.systems/categorie/cheepit/Entspannungslicht.html
'Sparrow_Fade.bas
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 8
$swstack = 4
$framesize = 4
Config Portb.1 = 1
Config Portb.3 = 1
Config Portb.4 = 1
Dim T As Byte
Dim I As Byte
Dim J As Byte
Dim N As Byte
Dim D As Word
Led1 Alias Portb.1
Led2 Alias Portb.3
S1 Alias Pinb.0
S2 Alias Pinb.2
Config Timer0 = Pwm , Prescale = 8 , Compare B Pwm = Clear Up
N = 50
T = 5
J = 0
Do
Waitms 10
I = I + 1
If I >= T Then
'Toggle Led2
If S1 = 0 Then T = T + 1
If T > 20 Then T = 20
If S2 = 0 Then T = T - 1
If T < 1 Then T = 1
I = 0
If J = 0 Then N = N + 1
If N > 250 Then J = 1
If J = 1 Then N = N - 1
If N < 50 Then J = 0
D = N * N
D = High(d)
Pwm0b = D
End If
Loop
End