Ich glaub', da ist ein "else" zuviel, bzw. ein "if" zuwenig
Noch was: Ich seh keine Chance, aus dem DO..LOOP rauszukommen.---
Close #10
'Datei auf SD Karte schließen
End If
Else // zu dem seh ich kein "IF"
---
Wie ist das gedacht ?
Hallo,
ich bekomme gerade ständig eine Fehlermeldung Namens
Error 221 Backward jump out of Range [_FROUND 2059]], in File ....
bedauerlicherweise habe ich bisher keine genauere Beschreibung dieses Fehlers gefunden und weiß nun leider nicht wo dieser liegt, geschweige denn wie ich ihn ausbessern könnte.
Ich habe einmal den Hauptteil meines Programms beigefügt, ich schätze,dass es an diesen beiden If Abfragen am Anfang -die erst am Ende beendet werden hängt aber nach meinem verständnis müßten sie so OK sein.
[fade:014a02acbd][/fade:014a02acbd]'---------------------------------------------------------------------------------------------------------------------------------------------------
'Hauptprogramm
'---------------------------------------------------------------------------------------------------------------------------------------------------
'---------------------------SD Anfang---------------------------------------------
$Include "Config_MMC.bas"
If Gbdriveerror = 0 Then
$Include "Config_AVR-DOS.BAS"
Btemp1 = Initfilesystem(1)
If Btemp1 <> 0 Then
Lcd_string = "Error on Filesystem " : Lx1 = 1 : Ly1 = 50 : Fontsize = 1 : Lcd_fcolor = Schwarz : Lcd_bcolor = Weiss
Gosub Lcd_print
Else
Open "Daten.txt" For Append As #10
Do
Voutxw = Getadc(0)
Waitms 10
Voutx = Voutxw / 1024
Voutx = Voutx * Referenzspannung
Voutxstr = Fusing(voutx , "#.####")
Lcd_string = "Voutx " : Lx1 = 2 : Ly1 = 50 : Fontsize = 1 : Lcd_fcolor = Rot : Lcd_bcolor = Weiss
Gosub Lcd_print
Lcd_string = Voutxstr : Lx1 = 8 : Ly1 = 50 : Fontsize = 1 : Lcd_fcolor = Rot : Lcd_bcolor = Weiss
Gosub Lcd_print
Loop
Close #10
'Datei auf SD Karte schließen
End If
Else
Lcd_string = "Driveerror " : Lx1 = 1 : Ly1 = 50 : Fontsize = 1 : Lcd_fcolor = Schwarz : Lcd_bcolor = Weiss
Gosub Lcd_print
End If
End
Ich glaub', da ist ein "else" zuviel, bzw. ein "if" zuwenig
Noch was: Ich seh keine Chance, aus dem DO..LOOP rauszukommen.---
Close #10
'Datei auf SD Karte schließen
End If
Else // zu dem seh ich kein "IF"
---
Wie ist das gedacht ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Das Else gehört zu dem allerersten If ganz ganz oben.
Gut, das mit der Loop stimmt, daraus werde ich später noch eine while loop machen die eben bei einem Tastendruck endet und auch startet.
Inzwischen weiß ich immerhin, dass es wohl am "Btemp1 = Initfilesystem(1) " liegen muß. Allerdings sah ich so etwas bereits in einigen anderen Programmen in denen SD Karten beschrieben wurden und denke auch, dass da doch auch nicht so viel schief gehen kann.. bzw was geht denn da schief.. wie gesagt dieser Fehler sagt mir einfach nichts.
Ah ja, jetzt seh' ich's.
1 Hau' dieses "IF" weg, es ist überflüssig, was soll an dieser Stelle sein ?Code:If Gbdriveerror = 0 Then $Include "Config_AVR-DOS.BAS"
2 Könnte auch der Grund sein, da wahrscheinlich erst in der "include" das Feld "Gbdriveerror" definiert wird
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Nein das war es leider auch nicht, dieses Gbdriveerror wird bereits in der Config_MMC.bas definiert.
Bei der Auskommentierung folgender Zeile:
"Btemp1 = Initfilesystem(1) "
erscheint der Fehler allerdings nicht mehr aber ohne das kann das Programm ja auch nicht funktionieren.
Ich sehe es schon kommen, dass es irgendein sehr sehr einfacher dummer Fehler ist und ich am Ende einen Monat für brauchen werde um ihn zu finden.
mmhh.
das "Btemp1" definierst du auch dort ? (nehm ich an)
Ist der Controller groß genug für AVR-DOS ?
Sonst müßt man wohl in die DOS-Library reinkraxeln.
Sorry, fällt mir nix gescheites ein
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Ich habe es jetzt mal folgendermaßen geändert, aber es brachte auch nichts. Hm bleibt nun die fRage was mit diesem Initfilesystem nicht richtig ist.
Naja trotzdem danke, immerhin beruhigt es mich schon fast,dass ein weitaus erfahrener es auch nicht gleich sieht. Wobei..nein eigentlich ist das letztlich doch eher beunruhigend.
Code:'--------------------------------------------------------------------------------------------------------------------------------------------------- 'Hauptprogramm '--------------------------------------------------------------------------------------------------------------------------------------------------- '---------------------------SD Anfang--------------------------------------------- $include "Config_MMC.BAS" $include "CONFIG_AVR-DOS.BAS" IF Gbdriveerror <> 0 THEN Lcd_string = "Drive error" : Lx1 = 1 : Ly1 = 50 : Fontsize = 1 : Lcd_fcolor = Rot : Lcd_bcolor = Weiss Gosub Lcd_print END IF Btemp1 = Initfilesystem(1) IF Btemp1 <> 0 THEN Lcd_string = "File system Error" : Lx1 = 1 : Ly1 = 51 : Fontsize = 1 : Lcd_fcolor = Rot : Lcd_bcolor = Weiss Gosub Lcd_print ELSE Lcd_string = "Card setup OK " : Lx1 = 1 : Ly1 = 52 : Fontsize = 1 : Lcd_fcolor = Rot : Lcd_bcolor = Weiss Gosub Lcd_print END IF Wait 3 Gosub Lcd_cls Do Voutxw = Getadc(0) Waitms 10 Voutx = Voutxw / 1024 Voutx = Voutx * Referenzspannung Voutxstr = Fusing(voutx , "#.####") Lcd_string = "Voutx " : Lx1 = 2 : Ly1 = 50 : Fontsize = 1 : Lcd_fcolor = Rot : Lcd_bcolor = Weiss Gosub Lcd_print Lcd_string = Voutxstr : Lx1 = 8 : Ly1 = 50 : Fontsize = 1 : Lcd_fcolor = Rot : Lcd_bcolor = Weiss Gosub Lcd_print Open "Daten.txt" For Append As #10 'Hier werden einmal die daten auf die Karte geschrieben Close #10 'Datei auf SD Karte schließen Loop End
würde es vielleicht helfen wenn ich hier mal den kompletten code poste?
Super wär ja, wenn ich das mit meinem Bascom übersetzen könnte. Aber das AVR-DOS kostet ja extra Kohle ?
[_FROUND 2059] klingt eigentlich aber nach runden ? Lass mal das "fusing" weg, nur damit wir das gleich wieder vergessen können.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
aha, man muß eine gewisse Reife erreicht haben, um Schwachsinn verzapfen zu können. Ich scheine eh' alles da zu haben, was man braucht.
Dann wäre wirklich die komplette Source interessant. Ich sollte ja die gleichen Fehler kriegen
(Controller typ bitte angeben)
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Nein also AVR Dos kostet nur etwas wenn man es gewerblich nutzen möchte.
Also ich verwende den ATMega128 auf dem D062x Board von Display 3000, programmieren tue ich das ganze mit einem einfachen USB-ISP Programmer von EMBUD.
So inzwischen habe ich noch ausprobiert alle Befehle die das LCD Display ansprechen auszukommentieren -ohne Erfolg. Wenn man jedoch die Routinen dazu (alles nach dem Hauptprogramm) auch auskommentiert geht es.. nur mag ich mich nun einmal nicht zwischen MMC Karte und Display entscheiden.
Die config_MMC.bas habe ich übrigens dahingehnd geändert, dass ich Port b zu d machte da diese Platiene von Display 3000 ja auch auf Port b zugreift und bevor sich da etwas ins Gehege kommt. Wenn gewünscht kann ich das aber auch nochmal posten.
Hier aber erstmal das Programm (mit auskommentierten LCD Aufrufbefehlen)
Lesezeichen