PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bascom Bug bei langer Zeichenkette über RS232



Steffen44
21.02.2007, 13:28
Hallo

ich habe ein Problem und komme nicht weiter ich kann meine Messwerte nicht mit einem Trennzeichen versehen das führt bei Bascom zu einem schwerem Fehler :

Access violation at address 009081D6 in module 'BASC-AVR.DLL' Read of address 000E0000.

Alles was ich gemacht habe ist eine RS232 Zeichenkette zu bilden und diese per USB mit dem RN-MEGA2560 zu verschicken.

Hier ist die Zeichenkette diese funktioniert in dieser Länge nicht wenn man die Zeichenkette aber halbiert dann funktioniert es.



Print #4 , ";" ; Volt_a_2kommastellen ; ";" ; Volt_b_2kommastellen ;";" ; Volt_c_2kommastellen ;";" ; Volt_d_2kommastellen ;";" ; Volt_e_2kommastellen ; ";" ;Volt_f_2kommastellen ;";" ; Volt_g_2kommastellen ; ";" ;Volt_h_2kommastellen ; ";" ;Volt_i_2kommastellen ;";" ; Volt_j_2kommastellen ;";" ; Volt_k_2kommastellen ;";" ; Volt_l_2kommastellen ;";" ; Volt_m_2kommastellen ;";" ; Volt_o_2kommastellen ;";" ; Volt_p_2kommastellen


Wenn ich die Zeichentrenner rausnehme also ohne ";" arbeite funktioniert es ebenfalls ?!

Es ist zum verrückt werden ich bekomme keine Zeichentrenner zwischen die Messwerte.

Ich habe auch schon versucht noch irgendwie das Semikolion zu kombinieren mit einer Variable aber ich habe es nicht hinbekommen. Etwas in der art: variable & ";" funktioniert nicht :-(

Kennt jemand eine Lösung ??


Danke und Gruß
Steffen

Steffen44
21.02.2007, 13:56
ich glaube ich habe erstmal eine taugliche Lösung :




Print #4 , ";" ;
Print #4 , Volt_a_2kommastellen ;
Print #4 , ";" ;
Print #4 , Volt_b_2kommastellen;
Print #4 , ";" ;
Print #4 , Volt_c_2kommastellen ;
Print #4 , ";" ;
Print #4 , Volt_d_2kommastellen ;
Print #4 , ";" ;
Print #4 , Volt_e_2kommastellen ;
Print #4 , ";" ;
Print #4 , Volt_f_2kommastellen ;
Print #4 , ";" ;
Print #4 , Volt_g_2kommastellen ;
Print #4 , ";" ;
Print #4 , Volt_h_2kommastellen ;
Print #4 , ";" ;
Print #4 , Volt_i_2kommastellen ;
Print #4 , ";" ;
Print #4 , Volt_j_2kommastellen ;
Print #4 , ";" ;
Print #4 , Volt_k_2kommastellen ;
Print #4 , ";" ;
Print #4 , Volt_l_2kommastellen ;
Print #4 , ";" ;
Print #4 , Volt_m_2kommastellen ;
Print #4 , ";" ;
Print #4 , Volt_n_2kommastellen ;
Print #4 , ";" ;
Print #4 , Volt_o_2kommastellen ;
Print #4 , ";" ;
Print #4 , Volt_p_2kommastellen ;
Print #4 , ";" ;
Print #4 , 'und nun einen Zeilenumbruch erzeugen




Dieser Schreibweise ist zumindest erstmal übersichtlicher und scheint auch bis jetzt reibungslos zu gehen.

Ob das Obige beschriebene Verhalten ein Bug ist würde ich trotzdem gerne wissen.

Gruß
Steffen

Foooob
21.02.2007, 14:53
Deine Untere Lösung hätte ich jetzt auch vorgeschlagen.
Ich würde jetzt spontan vermuten, dass Bascom mit so vielen getrennten(!) Zeichenketten innerhalb einer Print-Anweisung nicht zurecht kommt.

Steffen44
21.02.2007, 15:11
die andere Lösung ist optisch wirklich um Meilen besser aber was denkst du wie mir das Herz stehen geblieben ist wo Bascom den schwerwiegenden Fehler angezeigt hat und danach abgestürtzt ist.

Interressant wäre zu wissen ob das ein Globaler Bug ist der für alle µC gilt oder ob nur der ATMEGA2560 betroffen ist.

Naja vieleicht hat ja jemand mal Lust seinen ATmega8 oder 32 mal mit einem langem RS232 String zu beflashen.

patti16
21.02.2007, 17:11
hallo

doch Bascom kommt damit eigentlich klar habe es mit einer noch längeren kette am laufen klappt eigentlich soweit prima.


nur letztens habe ich auch gemerkt das er bei einem neu geschrieben Programm das auch an gemekert hatte aber jetzt mittlerweile klappts wieder warum auch immer

gruß
patrick

Steffen44
21.02.2007, 17:48
vieleicht ist es auch nur ein Problem der aktuellen Version.
Ich hab schon die neuste Demo am laufen aber was solls Bug ist Bug.

Glaube das ist die 11.8.3 oder so. Zumindst ist es glaube die erste Version wo mein ATMEGA2560 unterstütz wird und das will schon heißen das es mit sicherheit noch ein paar Bugs hat.

Naja man soll nicht mecker wenn doch alles geht ... und mit Bascom komm ich gerade so gut klar :-)

PS.: ok es geht nicht wirklich alles die Register für das allzuschöne RC5 Empfangen sind anders und ich habe es noch nicht geschafft das anzugleichen und werde es wohl auch nie schaffen \:D/