BASCOM-Quellcode
- 'Schweißblitzer von tschoeatsch
- 'Gesellenversion
- 'Bascom-Version 2.0.7.9
- $regfile = "attiny13.dat"
- $crystal = 1200000
- $hwstack = 20
- $swstack = 10
- $framesize = 24
- Config Portb = Output 'alles auf Ausgang setzen
- Dim Geraet1 As Byte 'Schweißgerät1
- Dim Geraet2 As Byte
- Dim Geraet3 As Byte
- Dim Geraet4 As Byte
- Dim Geraet5 As Byte
- Dim Led As Byte 'enthält Bitmuster der einzelnen Geräte
- Led_1 Alias Led.0
- Led_2 Alias Led.1
- Led_3 Alias Led.2
- Led_4 Alias Led.3
- Led_5 Alias Led.4
- Dim Led_0 As Byte
- Dim Blitze As Byte
- Config Timer0 = Timer , Prescale = 256
- Const Timer0reload = 40
- On Timer0 Isrtimer0
- Enable Timer0
- Enable Interrupts
- Do
- If Geraet1 = 0 Then 'für jedes Gerät wird eine zufällig lange Ein- bzw. Ausschaltzeit festgelegt
- Geraet1 = Rnd(255) 'Laufzeit bzw Pausenzeit für das Gerät laden
- Toggle Led_1 'Laufzeit und Pausenzeit umschalten
- End If
- If Geraet2 = 0 Then
- Geraet2 = Rnd(255)
- Toggle Led_2
- End If
- If Geraet3 = 0 Then
- Geraet3 = Rnd(255)
- Toggle Led_3
- End If
- If Geraet4 = 0 Then
- Geraet4 = Rnd(255)
- Toggle Led_4
- End If
- If Geraet5 = 0 Then
- Geraet5 = Rnd(255)
- Toggle Led_5
- End If
- Decr Geraet1 'die Zeit läuft ab
- Decr Geraet2
- Decr Geraet3
- Decr Geraet4
- Decr Geraet5
- Waitms 100 'Einheit der Zeit max.Einschaltzeit bzw Ausschaltzeit=256*100msec=25,6Sekunden
- Loop
- End
- Isrtimer0: 'wird alle 30msec aufgerufen
- Load Timer0 , Timer0reload 'timer0 laden
- Blitze = Lookup(rnd(20) , Daten ) 'Hilfsvariable um ein Blitzen (Zucken) der Schweißlichts zu erzeugen
- Led_0 = Led And Blitze 'Überlagerung mit der Einschaltzeit des Gerätes
- Portb = Led_0 'Ausgabe an die portpins 1=Led an
- Return
- Daten:
- Data &B1111_1111
- Data &B1111_0101
- Data &B1111_1100
- Data &B1111_0111
- Data &B1110_0111
- Data &B1101_1110
- Data &B1111_1101
- Data &B1110_1011
- Data &B1111_1111
- Data &B1111_0111
- Data &B1110_1111
- Data &B1101_1110
- Data &B1111_1110
- Data &B1111_0111
- Data &B1101_1011
- Data &B1101_1111
- Data &B1111_1011
- Data &B1111_1101
- Data &B1111_0111
- Data &B1110_1011