In dieser Anwendung geht es um eine effektive
Zeiteinteilung beim Lernen von zum Beispiel Vokalen. Die
Pomodoro-Technik wurde von Francesco Cirillo in den 1980er Jahren
entwickelt. Die Theorie dahinter besagt, dass man am besten auswendig
lernt, wenn man sich über mehrere mehr oder weniger lange Phasen
intensiv mit dem zu Lernenden befasst und dazwischen kurze Pausen
einlegt. Nach vier oder fünf Lernphasen sollte eine längere Pause
gemacht werden und auch nach dem Lernen, damit das Unterbewusstsein
Zeit bekommt, das Gelernte zu verarbeiten. Der Sparrow nimmt hierbei
die Rolle des Zeitmessers ein.
Pomodoro-Technik:
1. Aufgabe notieren
2. Timer stellen
3. 25 Minuten Aufgabe bearbeiten
4. 5 Minuten Pause machen
5. → Nach 4 „pomodori“ eine Pause von 25 Minuten machen
Abgewandelte Technik für das Vokabellernen:
1. Vokabeln heraussuchen
2. 10 Minuten intensives Lernen
3. Vokabelabfrage → wieder zu 2.
4. 30 Minuten „Cooldown“ (Tätigkeitslose Phase)
Um
die Zeiten in Minuten für die Lernphase und die Erholungsphase
festzulegen, muss beim Anlegen der Betriebsspannung die Taste 2
gedrückt gehalten werden, bis die grüne LED ca. zwei Sekunden
aufleuchtet, um den Programmiermodus anzuzeigen. Dann kann durch
beliebig häufiges Drücken die Zeit für die Lernphase festgelegt werden.
Nach jedem Erhöhen der Minutenanzahl wird letztere von der grünen LED
noch einmal durch Blinken angezeigt. Wenn der gewünschte Wert erreicht
ist, kann mit Druck auf Taste 2 der Wert ins EEPROM geschrieben werden
(die rote LED blitzt kurz auf). Danach muss die Erholungs/Pausenzeit
mit dem selben Procedere festgelegt werden. Darauf startet der Sparrow,
wie in Punkt 1:
'Pomodori.bas
'Die Technik zur Sekundenerzeugung basiert auf dem Code von Ralf Beesner.
Dim Lernintervall As Integer
Dim Cooldown As Integer 'Cooldown = Pause nach dem Lernen um dem Unterbewusstsein Zeit zu geben, die gelernten Dinge nachzubearbeiten
$regfile = "ATtiny13.dat"
$crystal = 1200000
$hwstack = 8
$swstack = 0
$framesize = 0
Led1 Alias Portb.1
Led2 Alias Portb.3
S1 Alias Pinb.0
S2 Alias Pinb.2
Config Pinb.1 = Output
Config Pinb.3 = Output
Dim Intercnt As Byte
Dim Secs As Byte
Dim Mins As Integer
Dim Tmp As Integer
Dim A As Byte
Clkpr = 128
Clkpr = 3
Clkpr = 3
Sreg.7 = 1
Portb = &B00000101
On Timer0 Timerinterrupt
Config Timer0 = Timer , Prescale = 256
If S2 = 0 Then 'Programmiermodus
Led1 = 1
Waitms 2000
Led1 = 0
Waitms 1000
Do
If S1 = 0 Then
Tmp = Tmp + 1
For A = Tmp To 1 Step -1
Led1 = 1
Waitms 200
Led1 = 0
Waitms 200
Next A
End If
If S2 = 0 Then
Led2 = 1
Writeeeprom Tmp , 10
Tmp = 0
Waitms 10
Led2 = 0
Exit Do
End If
Loop
Waitms 1500
Led2 = 1
Waitms 2000
Led2 = 0
Waitms 1000
Do
If S1 = 0 Then
Tmp = Tmp + 1
For A = Tmp To 1 Step -1
Led1 = 1
Waitms 200
Led1 = 0
Waitms 200
Next A
End If
If S2 = 0 Then
Led2 = 1
Writeeeprom Tmp , 20
Waitms 10
Led2 = 0
Exit Do
End If
Loop
End If
Readeeprom Lernintervall , 10
Readeeprom Cooldown , 20
Waitms 1000
Led1 = 1
Led2 = 1
Waitms 100
Led1 = 0
Led2 = 0
Buttonabfrage:
If S1 = 0 Then
Waitms 600
For Tmp = Lernintervall To 1 Step -1
Led1 = 1
Waitms 200
Led1 = 0
Waitms 200
Next Tmp
Tmp = Lernintervall
Goto Pomodoristart
End If
If S2 = 0 Then
For Tmp = Cooldown To 1 Step -1
Led2 = 1
Waitms 200
Led2 = 0
Waitms 200
Next Tmp
Tmp = Cooldown
Goto Pomodoristart
End If
Goto Buttonabfrage
Pomodoristart:
Enable Timer0
Start Timer0
Do
If Secs >= 60 Then
Tmp = Tmp - 1
Led1 = 1
Waitms 20
Led1 = 0
Secs = 0
End If
If Tmp <= 0 Then
Do
Waitms 20
Led2 = 1
Waitms 40
Led2 = 0
Waitms 40
Loop Until S2 = 0
Stop Timer0
Disable Timer0
Waitms 300
Led1 = 1
Led2 = 1
Waitms 200
Led1 = 0
Led2 = 0
Waitms 200
Goto Buttonabfrage
End If
Loop
Timerinterrupt:
Tcnt0 = 22
Intercnt = Intercnt + 1
If Intercnt >= 22 Then
Secs = Secs + 1
Intercnt = 0
Toggle Led1
End If
Return
End