Hallo!
Ich fange gerade erst an...meine ersten Versuche laufen derzeit in
Bascom...auch wenn andere Programme besser sein sollen...ich muss
erstmal einen einstieg finden. Da ich eh ein wenig Basic kann...
Das Programm, das ich bisher geschrieben habe, soll:
1. Beide PWM Ausgänge einen mit 20% und einen mit 80% aktivieren
2. Immer wenn ein Schalter geschlossen ist (Gruppe 1und2 und 3und4)
einen Motor ansteuern.
Die Hardware ist schon verdrahtet und ohne Mikrocontroller vollständig
lauffähig.
Ich nutze ein Testboard aus der Elektor, das dort vor ein paar Jahren
mal veröffentlicht wurde.
Nun zu meinem Problem...hier ist erstmal der Code:
1 | $regfile = "m16def.dat" 'Atmega16
|
2 | $framesize = 32
|
3 | $swstack = 32
|
4 | $hwstack = 32
|
5 | $crystal = 8000000 '8Mhz Quarz
|
6 |
|
7 | Config Portc = Output 'display
|
8 | Config Porta = Input 'Schalter
|
9 | Config Portd.5 = Output 'PWM 1
|
10 | Config Portd.4 = Output 'PWM 2
|
11 |
|
12 | 'Pins des LCD-Modules setzen ggf. an eigene Anschlüsse anpassen
|
13 | Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
|
14 | Config Lcd = 20 * 4a , Chipset = Ks077
|
15 | Initlcd
|
16 | Cls
|
17 |
|
18 |
|
19 | 'Namen und Variablen
|
20 | 'Schalter auf Entwicklungsboard
|
21 | Dip1 Alias Pina.0
|
22 | Dip2 Alias Pina.1
|
23 | Dip3 Alias Pina.2
|
24 | Dip4 Alias Pina.3
|
25 | Dip5 Alias Pina.4
|
26 | Dip6 Alias Pina.5
|
27 | Dip7 Alias Pina.6
|
28 | Dip8 Alias Pina.7
|
29 |
|
30 | Led1 Alias Portb.0
|
31 | Led2 Alias Portb.1
|
32 | Led3 Alias Portb.2
|
33 | Led4 Alias Portb.3
|
34 | Led5 Alias Portb.4
|
35 | Led6 Alias Portb.5
|
36 | Led7 Alias Portb.6
|
37 | Led8 Alias Portb.7
|
38 |
|
39 |
|
40 |
|
41 |
|
42 | 'PWM setzen
|
43 | Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1
|
44 |
|
45 | Locate 1 , 1
|
46 | Lcd "205 / 21"
|
47 |
|
48 | Do 'Hauptschleife
|
49 | Compare1a = 205 '100% = 256 -> 80% = 205
|
50 | Compare1b = 51 '20% = 51
|
51 |
|
52 | 'Motor 1
|
53 | If Pina.1 = 1 'And Dip2 = 0
|
54 | Then
|
55 | Led1 = 1
|
56 | Led2 = 0
|
57 | End If
|
58 |
|
59 | If Dip1 = 0 And Dip2 = 1
|
60 | Then
|
61 | Led1 = 0
|
62 | Led2 = 1
|
63 | End If
|
64 |
|
65 | If Dip1 = 0 And Dip2 = 0
|
66 | Then
|
67 | Led1 = 0
|
68 | Led2 = 0
|
69 | End If
|
70 |
|
71 | If Dip1 = 1 And Dip2 = 1
|
72 | Then
|
73 | Led1 = 0
|
74 | Led2 = 0
|
75 | End If
|
76 |
|
77 |
|
78 | 'Motor 2
|
79 | If Dip3 = 1 And Dip4 = 0
|
80 | Then
|
81 | Led3 = 1
|
82 | Led4 = 0
|
83 | End If
|
84 |
|
85 | If Dip3 = 0 And Dip4 = 1
|
86 | Then
|
87 | Led3 = 0
|
88 | Led4 = 1
|
89 | End If
|
90 |
|
91 | If Dip3 = 0 And Dip4 = 0
|
92 | Then
|
93 | Led3 = 0
|
94 | Led4 = 0
|
95 | End If
|
96 |
|
97 | If Dip3 = 1 And Dip4 = 1
|
98 | Then
|
99 | Led3 = 0
|
100 | Led4 = 0
|
101 | End If
|
102 |
|
103 | Loop
|
104 |
|
105 | End
|
Hier kommt beim Compilen die Fehlermeldung:
Assignment error [IP1:0 1:112]
in dieser Zeile:
1 | If Dip1 = 1 'And Dip2 = 0
|
Bevor ich hier das And Dip2 = 0 auskommentiert hatte, gab es die
Fehlermeldung
3 Parameters expected
Ich hatte zuerst nur die PWM aktiv. Soweit hatte das Programm gut
funktioniert.
Über den Alias habe ich mir die pins umbenannt. Aber auch wenn ich die
Zeile in
1 | If Pina.0 = 1 'And Dip2 = 0
|
ändere, bleibt die Fehlermeldung die gleiche...
Ich verstehe beides nicht so ganz. Kann mir hier bitte jemand auf die
Sprünge helfen? Mir reicht schon ein schubs in die Richtige Richtung :)
Gruß
Bismosa