www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DS1307 Error Bascom


Autor: Xash (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
Error : 222   Line :   195   Illegal character [expected (, got '' [_XMEGA]]  , in File : C:\temp\test\propeller_mik.bas
Error : 222   Line :   195   Illegal character [expected (, got '=' [_XMEGA=0]]  , in File : C:\temp\test\propeller_mik.bas
Error : 222   Line :   195   Illegal character [expected (, got '' [_XMEGA]]  , in File : C:\temp\test\propeller_mik.bas
Error : 222   Line :   195   Illegal character [expected (, got '=' [_XMEGA=0]]  , in File : C:\temp\test\propeller_mik.bas
Error : 238   Line :   195   Variable is not dimensioned as an array [_XMEGAREG(1)]  , in File : C:\temp\test\propeller_mik.bas
Error : 263   Line :   195   Array index out of range [1]  , in File : C:\temp\test\propeller_mik.bas
Error : 104   Line :   195   LoadReg error [_XMEGAREG(1)]  , in File : C:\temp\test\propeller_mik.bas
Error : 5     Line :   195   No more space for BIT [_XMEGAREG(1)]  , in File : C:\temp\test\propeller_mik.bas
Error : 5     Line :   195   No more space for BIT [_XMEGAREG(1)+1]  , in File : C:\temp\test\propeller_mik.bas
Error : 5     Line :   195   No more space for BIT [_XMEGAREG(1)+2]  , in File : C:\temp\test\propeller_mik.bas
Error : 320   Line :   195    [syntax error, token = '{']  , in File : C:\temp\test\propeller_mik.bas
Error : 320   Line :   195    [syntax error, token = '{']  , in File : C:\temp\test\propeller_mik.bas
Error : 320   Line :   195    [syntax error, token = '{']  , in File : C:\temp\test\propeller_mik.bas


Hier der gesamte Code
$regfile = "m16def.dat"
$crystal = 8000000
$baud = 9600


Config Clock = User                                         ' Interne Time/Date Routinen für Bascom konfigurieren
Config Date = Dmy , Separator = .

Config Sda = Portc.1                                        ' I2C Bus konfigurieren
Config Scl = Portc.0
Const Ds1307w = &HD0                                        ' Addresse der Ds1307 Uhr
Const Ds1307r = &HD1


Config Porta = Output

Dim Ta As Integer

' Stellen der Uhr, muss nur einmal ausgeführt werden
Time$ = "12:16:00"
Date$ = "26.01.11"


Do

Ta = 1

If Ta = 1 Then
   Porta = 0
   Waitus 250
   Porta = 0
   Waitus 250
   Porta = 0
   Waitus 250
   Porta = 1
   Waitus 250
   Porta = 0
   Waitus 250
   Porta = 0
   Waitus 250
Elseif Ta = 2 Then
   Porta = 159
   Waitus 250
   Porta = 145
   Waitus 250
   Porta = 145
   Waitus 250
   Porta = 145
   Waitus 250
   Porta = 241
   Waitus 250
   Porta = 0
   Waitus 250
Elseif Ta = 3 Then
   Porta = 1
   Waitus 250
   Porta = 145
   Waitus 250
   Porta = 145
   Waitus 250
   Porta = 145
   Waitus 250
   Porta = 129
   Waitus 250
   Porta = 0
   Waitus 250
Elseif Ta = 4 Then
   Porta = 240
   Waitus 250
   Porta = 16
   Waitus 250
   Porta = 16
   Waitus 250
   Porta = 63
   Waitus 250
   Porta = 16
   Waitus 250
   Porta = 0
   Waitus 250
Elseif Ta = 5 Then
   Porta = 241
   Waitus 250
   Porta = 145
   Waitus 250
   Porta = 145
   Waitus 250
   Porta = 145
   Waitus 250
   Porta = 159
   Waitus 250
   Porta = 0
   Waitus 250
Elseif Ta = 6 Then
   Porta = 1
   Waitus 250
   Porta = 137
   Waitus 250
   Porta = 137
   Waitus 250
   Porta = 137
   Waitus 250
   Porta = 143
   Waitus 250
   Porta = 0
   Waitus 250
Elseif Ta = 7 Then
   Porta = 128
   Waitus 250
   Porta = 128
   Waitus 250
   Porta = 128
   Waitus 250
   Porta = 128
   Waitus 250
   Porta = 1
   Waitus 250
   Porta = 0
   Waitus 250
Elseif Ta = 8 Then
   Porta = 1
   Waitus 250
   Porta = 145
   Waitus 250
   Porta = 145
   Waitus 250
   Porta = 145
   Waitus 250
   Porta = 145
   Waitus 250
   Porta = 1
   Waitus 250
   Porta = 0
   Waitus 250
Elseif Ta = 9 Then
   Porta = 241
   Waitus 250
   Porta = 241
   Waitus 250
   Porta = 241
   Waitus 250
   Porta = 241
   Waitus 250
   Porta = 241
   Waitus 250
   Porta = 1
   Waitus 250
   Porta = 0
   Waitus 250
End If

Loop


Dim Weekday As Byte
Getdatetime:
  I2cstart
  I2cwbyte Ds1307w
  I2cwbyte 0
  I2cstart
  I2cwbyte Ds1307r
  I2crbyte _sec , Ack
  I2crbyte _min , Ack
  I2crbyte _hour , Ack
  I2crbyte Weekday , Ack
  I2crbyte _day , Ack
  I2crbyte _month , Ack
  I2crbyte _year , Nack
  I2cstop
  _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
  _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
Return

Setdate:
  _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
  I2cstart
  I2cwbyte Ds1307w
  I2cwbyte 4
  I2cwbyte _day
  I2cwbyte _month
  I2cwbyte _year
  I2cstop
Return

Settime:
  _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
  I2cstart
  I2cwbyte Ds1307w
  I2cwbyte 0
  I2cwbyte _sec
  I2cwbyte _min
  I2cwbyte _hour
  I2cstop
Return

End

Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Poste bitte mal deine Bascom-Version!

Autor: Xash (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Xash (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sogar in der minimierten form tritt der Fehler auf
$regfile = "m16def.dat"
$crystal = 8000000
$baud = 9600


Config Clock = User                                         ' Interne Time/Date Routinen für Bascom konfigurieren
Config Date = Dmy , Separator = .

Config Sda = Portc.1                                        ' I2C Bus konfigurieren
Config Scl = Portc.0
Const Ds1307w = &HD0                                        ' Addresse der Ds1307 Uhr
Const Ds1307r = &HD1


Config Porta = Output

Dim Ta As Integer

' Stellen der Uhr, muss nur einmal ausgeführt werden
Time$ = "12:16:00"
Date$ = "26.01.11"


Dim Weekday As Byte
Getdatetime:
  I2cstart
  I2cwbyte Ds1307w
  I2cwbyte 0
  I2cstart
  I2cwbyte Ds1307r
  I2crbyte _sec , Ack
  I2crbyte _min , Ack
  I2crbyte _hour , Ack
  I2crbyte Weekday , Ack
  I2crbyte _day , Ack
  I2crbyte _month , Ack
  I2crbyte _year , Nack
  I2cstop
  _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
  _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
Return

Setdate:
  _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
  I2cstart
  I2cwbyte Ds1307w
  I2cwbyte 4
  I2cwbyte _day
  I2cwbyte _month
  I2cwbyte _year
  I2cstop
Return

Settime:
  _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
  I2cstart
  I2cwbyte Ds1307w
  I2cwbyte 0
  I2cwbyte _sec
  I2cwbyte _min
  I2cwbyte _hour
  I2cstop
Return

End


Autor: Xash (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Fehler liegt darin:
Time$ = "12:16:00"
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?

Autor: Alex W. (a20q90)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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!

Autor: U.R. Schmitt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Dieter B. (debe)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe die Demoversion 1.11.9.8
und die compiliert fehlerfrei.

debe

Autor: Alex W. (a20q90)
Datum:

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

Autor: GerK (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hackes (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!!!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.