Forum: Mikrocontroller und Digitale Elektronik DS1307 Error Bascom


von Xash (Gast)


Lesenswert?

Hallo

Ich habe ein Programm geschrieben, dass die Zeit über den DS1307 
ausliest. Das ganze in Bascom.
Jetzt möchte ich eine Zeit auslesen und ein bestimmtes Bitmuster an den 
PortA ausgeben.

Das Problem taucht aber schon bei der Zeit an. Sobald ich die Zeit 
festlegen will mit:

Time$ = "09:00:00"
Date$ = "24.02.2011"

mosert Bascom mit folgenden Fehlern rum:
1
Error : 222   Line :   195   Illegal character [expected (, got '' [_XMEGA]]  , in File : C:\temp\test\propeller_mik.bas
2
Error : 222   Line :   195   Illegal character [expected (, got '=' [_XMEGA=0]]  , in File : C:\temp\test\propeller_mik.bas
3
Error : 222   Line :   195   Illegal character [expected (, got '' [_XMEGA]]  , in File : C:\temp\test\propeller_mik.bas
4
Error : 222   Line :   195   Illegal character [expected (, got '=' [_XMEGA=0]]  , in File : C:\temp\test\propeller_mik.bas
5
Error : 238   Line :   195   Variable is not dimensioned as an array [_XMEGAREG(1)]  , in File : C:\temp\test\propeller_mik.bas
6
Error : 263   Line :   195   Array index out of range [1]  , in File : C:\temp\test\propeller_mik.bas
7
Error : 104   Line :   195   LoadReg error [_XMEGAREG(1)]  , in File : C:\temp\test\propeller_mik.bas
8
Error : 5     Line :   195   No more space for BIT [_XMEGAREG(1)]  , in File : C:\temp\test\propeller_mik.bas
9
Error : 5     Line :   195   No more space for BIT [_XMEGAREG(1)+1]  , in File : C:\temp\test\propeller_mik.bas
10
Error : 5     Line :   195   No more space for BIT [_XMEGAREG(1)+2]  , in File : C:\temp\test\propeller_mik.bas
11
Error : 320   Line :   195    [syntax error, token = '{']  , in File : C:\temp\test\propeller_mik.bas
12
Error : 320   Line :   195    [syntax error, token = '{']  , in File : C:\temp\test\propeller_mik.bas
13
Error : 320   Line :   195    [syntax error, token = '{']  , in File : C:\temp\test\propeller_mik.bas


Hier der gesamte Code
1
$regfile = "m16def.dat"
2
$crystal = 8000000
3
$baud = 9600
4
5
6
Config Clock = User                                         ' Interne Time/Date Routinen für Bascom konfigurieren
7
Config Date = Dmy , Separator = .
8
9
Config Sda = Portc.1                                        ' I2C Bus konfigurieren
10
Config Scl = Portc.0
11
Const Ds1307w = &HD0                                        ' Addresse der Ds1307 Uhr
12
Const Ds1307r = &HD1
13
14
15
Config Porta = Output
16
17
Dim Ta As Integer
18
19
' Stellen der Uhr, muss nur einmal ausgeführt werden
20
Time$ = "12:16:00"
21
Date$ = "26.01.11"
22
23
24
Do
25
26
Ta = 1
27
28
If Ta = 1 Then
29
   Porta = 0
30
   Waitus 250
31
   Porta = 0
32
   Waitus 250
33
   Porta = 0
34
   Waitus 250
35
   Porta = 1
36
   Waitus 250
37
   Porta = 0
38
   Waitus 250
39
   Porta = 0
40
   Waitus 250
41
Elseif Ta = 2 Then
42
   Porta = 159
43
   Waitus 250
44
   Porta = 145
45
   Waitus 250
46
   Porta = 145
47
   Waitus 250
48
   Porta = 145
49
   Waitus 250
50
   Porta = 241
51
   Waitus 250
52
   Porta = 0
53
   Waitus 250
54
Elseif Ta = 3 Then
55
   Porta = 1
56
   Waitus 250
57
   Porta = 145
58
   Waitus 250
59
   Porta = 145
60
   Waitus 250
61
   Porta = 145
62
   Waitus 250
63
   Porta = 129
64
   Waitus 250
65
   Porta = 0
66
   Waitus 250
67
Elseif Ta = 4 Then
68
   Porta = 240
69
   Waitus 250
70
   Porta = 16
71
   Waitus 250
72
   Porta = 16
73
   Waitus 250
74
   Porta = 63
75
   Waitus 250
76
   Porta = 16
77
   Waitus 250
78
   Porta = 0
79
   Waitus 250
80
Elseif Ta = 5 Then
81
   Porta = 241
82
   Waitus 250
83
   Porta = 145
84
   Waitus 250
85
   Porta = 145
86
   Waitus 250
87
   Porta = 145
88
   Waitus 250
89
   Porta = 159
90
   Waitus 250
91
   Porta = 0
92
   Waitus 250
93
Elseif Ta = 6 Then
94
   Porta = 1
95
   Waitus 250
96
   Porta = 137
97
   Waitus 250
98
   Porta = 137
99
   Waitus 250
100
   Porta = 137
101
   Waitus 250
102
   Porta = 143
103
   Waitus 250
104
   Porta = 0
105
   Waitus 250
106
Elseif Ta = 7 Then
107
   Porta = 128
108
   Waitus 250
109
   Porta = 128
110
   Waitus 250
111
   Porta = 128
112
   Waitus 250
113
   Porta = 128
114
   Waitus 250
115
   Porta = 1
116
   Waitus 250
117
   Porta = 0
118
   Waitus 250
119
Elseif Ta = 8 Then
120
   Porta = 1
121
   Waitus 250
122
   Porta = 145
123
   Waitus 250
124
   Porta = 145
125
   Waitus 250
126
   Porta = 145
127
   Waitus 250
128
   Porta = 145
129
   Waitus 250
130
   Porta = 1
131
   Waitus 250
132
   Porta = 0
133
   Waitus 250
134
Elseif Ta = 9 Then
135
   Porta = 241
136
   Waitus 250
137
   Porta = 241
138
   Waitus 250
139
   Porta = 241
140
   Waitus 250
141
   Porta = 241
142
   Waitus 250
143
   Porta = 241
144
   Waitus 250
145
   Porta = 1
146
   Waitus 250
147
   Porta = 0
148
   Waitus 250
149
End If
150
151
Loop
152
153
154
Dim Weekday As Byte
155
Getdatetime:
156
  I2cstart
157
  I2cwbyte Ds1307w
158
  I2cwbyte 0
159
  I2cstart
160
  I2cwbyte Ds1307r
161
  I2crbyte _sec , Ack
162
  I2crbyte _min , Ack
163
  I2crbyte _hour , Ack
164
  I2crbyte Weekday , Ack
165
  I2crbyte _day , Ack
166
  I2crbyte _month , Ack
167
  I2crbyte _year , Nack
168
  I2cstop
169
  _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
170
  _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
171
Return
172
173
Setdate:
174
  _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
175
  I2cstart
176
  I2cwbyte Ds1307w
177
  I2cwbyte 4
178
  I2cwbyte _day
179
  I2cwbyte _month
180
  I2cwbyte _year
181
  I2cstop
182
Return
183
184
Settime:
185
  _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
186
  I2cstart
187
  I2cwbyte Ds1307w
188
  I2cwbyte 0
189
  I2cwbyte _sec
190
  I2cwbyte _min
191
  I2cwbyte _hour
192
  I2cstop
193
Return
194
195
End

von Alex W. (a20q90)


Lesenswert?

Poste bitte mal deine Bascom-Version!

von Xash (Gast)


Lesenswert?

Compiler Version: 1.11.9.5
Compiler build : 1.11.9.5.001
IDE version : 2.0.4.0

Habe die Vollversion und habe die BASC-AVR.DLL in das Verzeichnis 
kopiert.

von Xash (Gast)


Lesenswert?

sogar in der minimierten form tritt der Fehler auf
1
$regfile = "m16def.dat"
2
$crystal = 8000000
3
$baud = 9600
4
5
6
Config Clock = User                                         ' Interne Time/Date Routinen für Bascom konfigurieren
7
Config Date = Dmy , Separator = .
8
9
Config Sda = Portc.1                                        ' I2C Bus konfigurieren
10
Config Scl = Portc.0
11
Const Ds1307w = &HD0                                        ' Addresse der Ds1307 Uhr
12
Const Ds1307r = &HD1
13
14
15
Config Porta = Output
16
17
Dim Ta As Integer
18
19
' Stellen der Uhr, muss nur einmal ausgeführt werden
20
Time$ = "12:16:00"
21
Date$ = "26.01.11"
22
23
24
Dim Weekday As Byte
25
Getdatetime:
26
  I2cstart
27
  I2cwbyte Ds1307w
28
  I2cwbyte 0
29
  I2cstart
30
  I2cwbyte Ds1307r
31
  I2crbyte _sec , Ack
32
  I2crbyte _min , Ack
33
  I2crbyte _hour , Ack
34
  I2crbyte Weekday , Ack
35
  I2crbyte _day , Ack
36
  I2crbyte _month , Ack
37
  I2crbyte _year , Nack
38
  I2cstop
39
  _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
40
  _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
41
Return
42
43
Setdate:
44
  _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
45
  I2cstart
46
  I2cwbyte Ds1307w
47
  I2cwbyte 4
48
  I2cwbyte _day
49
  I2cwbyte _month
50
  I2cwbyte _year
51
  I2cstop
52
Return
53
54
Settime:
55
  _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
56
  I2cstart
57
  I2cwbyte Ds1307w
58
  I2cwbyte 0
59
  I2cwbyte _sec
60
  I2cwbyte _min
61
  I2cwbyte _hour
62
  I2cstop
63
Return
64
65
End

von Xash (Gast)


Lesenswert?

Der Fehler liegt darin:
1
Time$ = "12:16:00"
2
Date$ = "26.01.11"

Aber weiso und wie kann ich den beheben?

Das ganze Programm ging bereits! Ist das ein Fehler der neuen Bascom 
Versionen?

von Alex W. (a20q90)


Angehängte Dateien:

Lesenswert?

Komisch! Ich kann Dein Code compilieren! Im Anhang die Hex.
Ich hab die 9.4er

Dr. von Edit:
Wenn Du die gekaufte Bascom-Version hast, schreib an den Support, und 
sende Deinen Code dazu!

von U.R. Schmitt (Gast)


Lesenswert?

Xash schrieb:
> Habe die Vollversion

Ich kenne jetzt das Basic nicht aber wenn es mit 9.4 ging (bei dir 
auch?) und wenn du dafür bezahlt hast, hast du Anrecht auf Support.

von Dieter B. (debe)


Lesenswert?

Ich habe die Demoversion 1.11.9.8
und die compiliert fehlerfrei.

debe

von Alex W. (a20q90)


Lesenswert?

Dann hat er irgendein Kauderwelsch zusammenkopiert. Irgendeine Datei von 
Bascom, welche veraltet ist! Er sollte Bascom nochmals neu 
installieren...

von GerK (Gast)


Lesenswert?

Xash schrieb:
> Compiler Version: 1.11.9.5
> Compiler build : 1.11.9.5.001
> IDE version : 2.0.4.0

Wie hast das zustande gebracht?

Bei mir z.B.:


Compiler version :2.0.3.0
Compiler build   :2.0.3.0.0
IDE version      :2.0.3.0

Wenn Du eh die Vollversion hast mach ein komplett Update
auf die 2.0.4.0

MfG

von Hackes (Gast)


Lesenswert?

Kann Dir nur empfehlen zu updaten. Ich hatte mir die Vollversion gekauft 
und plötzlich tauchten unerklärliche Fehler von vorher funktionierenden 
Programmen auf. Irgendwas muß auf der CD defekt gewesen sein. Der Fehler 
tauchte auch auf anderen Rechnern auf, die von DIESER CD installiert 
wurden. Nach einem Update war die Welt wieder in Ordnung!!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.