*Guten Morgen, Es ist mir nicht begreiflich, warum ich nicht den Color_delay mit Tastern ändern kann. +- Vielleicht ist mein Ansatz auch falsch ?*
1 | $regfile = "attiny2313.dat" ' specify the used micro |
2 | $crystal = 800000 ' used crystal frequency |
3 | $hwstack = 64 |
4 | $swstack = 16 |
5 | $framesize = 21 |
6 | Config Pinb.2 = Output 'Die PWM-Pins als Output definieren |
7 | Config Pinb.3 = Output 'Die PWM-Pins als Output definieren |
8 | Config Pinb.4 = Output 'Die PWM-Pins als Output definieren |
9 | Config Pind.0 = Input |
10 | Config Pind.1 = Input |
11 | Config Pind.2 = Input |
12 | |
13 | 'Die Timer auf PWM-Modus stellen |
14 | 'Die PWM-Register haben eine Breite von 8 Bit - also Werte von 0 bis 255 |
15 | 'Wobei 0 = 0% Helligkeit und 255 = 100% Helligkeit bedeuten |
16 | Config Timer0 = Pwm , Pwm = On , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down |
17 | Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down |
18 | |
19 | |
20 | 'Die Timer starten |
21 | Enable Timer0 |
22 | Enable Timer1 |
23 | ' Interessanterweise MUSS man für OC2 Enable benutzen, sonst passiert nix! |
24 | Start Timer0 |
25 | Start Timer1 |
26 | |
27 | |
28 | 'Die PWM-Register zuweisen |
29 | Led1 Alias Ocr1bl 'PWM-Pin 1 - Red |
30 | Led2 Alias Ocr1al 'PWM-Pin 2 - Green |
31 | Led3 Alias Ocr0a 'PWM-Pin 3 - Blau |
32 | Taste1 Alias Pind.0 |
33 | Taste2 Alias Pind.1 |
34 | Taste3 Alias Pind.2 |
35 | |
36 | |
37 | 'ein Paar Variablen Deklarieren |
38 | Dim Color_delay As Byte |
39 | Dim Color_stop As Byte |
40 | Dim Rgb As Byte |
41 | |
42 | |
43 | 'Startwert für die Schleife |
44 | Rgb = 0 |
45 | |
46 | 'Farbwechsel Geschwindigkeit pro Schritt (empfohlen 1-15) 1=schnell 15=langsam |
47 | Color_delay = 10 |
48 | |
49 | 'Dauer der Pause bei der Grundfarbe (empfohlen 1-10) |
50 | Color_stop = 2 |
51 | |
52 | |
53 | Do
|
54 | If Taste2 = 1 Then Load Color_delay + 1 End If |
55 | If Taste3 = 1 Then Load Color_delay - 1 End If |
56 | If Taste1 = 1 Then |
57 | |
58 | If Rgb = 0 Then |
59 | Incr Led1 |
60 | Decr Led3 |
61 | Waitms Color_delay |
62 | End If |
63 | |
64 | If Led1 = 255 Then |
65 | Rgb = 1 |
66 | Led3 = 0 |
67 | Wait Color_stop |
68 | End If |
69 | |
70 | If Rgb = 1 Then |
71 | Decr Led1 |
72 | Incr Led2 |
73 | Waitms Color_delay |
74 | End If |
75 | |
76 | If Led2 = 255 Then |
77 | Rgb = 2 |
78 | Led1 = 0 |
79 | Wait Color_stop |
80 | End If |
81 | |
82 | If Rgb = 2 Then |
83 | Decr Led2 |
84 | Incr Led3 |
85 | Waitms Color_delay |
86 | End If |
87 | |
88 | If Led3 = 255 Then |
89 | Rgb = 0 |
90 | Led2 = 0 |
91 | Wait Color_stop |
92 | End If |
93 | |
94 | Else
|
95 | |
96 | |
97 | End If |
98 | |
99 | Loop
|
100 | End
|