Cheepit Sparrow Online-Bascom                

Elektronik-Labor  Projekte  AVR  Sparrow                 





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





Elektronik-Labor  Projekte  AVR   Sparrow