Kleines Testprogramm um die Auswirkungen der Anweisung "Config Clockdiv = X" auf "Wait" zu testen.
Gruß Udo
Alles anzeigen
Gruß Udo
BASCOM-Quellcode
- '(-:
- *****************************************
- * Udo Lorenz *
- * 24.04.2019 *
- *****************************************
- ')
- '$sim
- $regfile = "m328pdef.dat"
- $crystal = 2000000 'Quarz ist 16Mhz, Fuses ist auf 16/8 eingestellt!
- 'Diese 1. Angabe ist fuer die IDE gueltig. Stehen weitere "$crystal" Angaben
- 'irgendwo im Programm, wird immer und nur der kleinste Wert benutzt.
- $hwstack = 80
- $swstack = 80
- $framesize = 100
- Config Portb.5 = Output
- Led Alias Portb.5
- Dim X As Byte , Z As Byte
- Declare Sub 16000000 'Clock
- Declare Sub 8000000 'Clock/2
- Declare Sub 4000000 'Clock/4
- Declare Sub 2000000 'Clock/8
- '***************************************************************************************
- Do
- If Z = 0 Then
- Call 16000000
- Z = Z + 1
- End If
- If Z = 1 Then
- Call 8000000
- Z = Z + 1
- End If
- If Z = 2 Then
- Call 4000000
- Z = Z + 1
- End If
- If Z = 3 Then
- Call 2000000
- Z = 0
- End If
- Loop
- End
- '***************************************************************************************
- 'Clockdiv moegliche Teiler: 1 , 2 , 4 , 8 ,16 , 32 ,64 , 128 und 256.
- '***************************************************************************************
- Sub 16000000 'Quarzfrequenz = 16000000
- Config Clockdiv = 1
- Wait 24 'Wait * 8 ist Realzeit (3*8=24)
- For X = 0 To 20
- Toggle Led
- Waitms 4000
- Next X
- X = 0
- End Sub
- '***************************************************************************************
- Sub 8000000 'Quarzfrequenz = 16000000/2
- Config Clockdiv = 2 'Wait * 4 ist Realzeit (3*4=12)
- Wait 12
- For X = 0 To 20
- Toggle Led
- Waitms 2000
- Next X
- X = 0
- End Sub
- '***************************************************************************************
- Sub 4000000 'Quarzfrequenz = 16000000/4
- Config Clockdiv = 4 'Wait * 2 ist Realzeit (3*2=6)
- Wait 6
- For X = 0 To 20
- Toggle Led
- Waitms 1000
- Next X
- X = 0
- End Sub
- '***************************************************************************************
- Sub 2000000 'Quarzfrequenz = 16000000/8
- Config Clockdiv = 8 'Wait * 1 ist Realzeit (3*1=3)
- Wait 3
- For X = 0 To 20
- Toggle Led
- Waitms 500
- Next X
- X = 0
- End Sub
- End
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Udo01 ()