PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Bascom: "Devise not open" / "Div



Sebbokalypse
13.11.2009, 14:59
Hi zusammen,

ich habe seit einiger Zeit ein sehr nerviges Problem mit dem RN-Control und der Kommunikation mit Bascom.

Ich habe das RN-Control via RS232 mit meinem PC verbunden. Wenn ich das Test-Programm des RN-Control (das auch schon vorinstalliert ist) kompiliere und via Bootloader auf den AtMega32 übertragen will, klappt alles ohne Probleme (im Bascom-Fenster erscheint nach dem Drücken der Reset-Taste auf dem RN-Control "Loader returned:123", der Ladebalken wandert auf 100 % und gut ist).

Bei praktisch jedem anderen Programm (bspw. dem Servo-Code aus RN-Wissen oder den Beispielen von Bascom, jeweils angepasst auf meinen Chip) kommt allerdings entweder "Loader returned: 123" und dann das Fenster "Com 3 can not be opened". Wenn ich dann das Übertragungsfenster schließen will, kommt noch der Fehler "ie_NOpen - device not open" oder aber "Division by zero" und Bascom stürzt ab.

Ich habe per Suchfunktion gefunden, dass schonmal jemand dieses Problem hatte, der dann auch einen Servo-Code gepostet hat, der bei ihm funktioniert - bei mir allerdings bleibt der Fehler.

Ich habe testweise auch mal das RN-Testprogramm wild verändert (so das es eigentlich nicht funktionieren dürfte) und übertragen - ohne Probleme. Warum funktionieren dann alle anderen Programme bloß nicht?

Ich hoffe ihr könnt mir Helfen das Problem zu lösen,

Seb

PS: Das RN-Control ist mit ausreichend Strom versorgt, ich habe die Übertragung mit und ohne angeschlossene Servos getestet und sogar mehere Baud-Raten ausprobiert, leider alles ohne Erfolg.

edit: Interessant ist auch, dass ich Programme (auch das Test-Programm) überhaupt erst übertragen kann, wenn ich die Baud-Rate in Bascom unter "Programmer" auf 38400 stelle.

edit2: Ich hab jetzt mal die .bas des Testprogramms geöffnet und folgendermaßen editiert:


Declare Sub Batteriespannung()
Declare Sub Motortest()
Declare Sub Lauflicht()
Declare Sub Showporta()
Declare Sub Showdigitalporta()
Declare Function Tastenabfrage() As Byte


$regfile = "m32def.dat"
' bei Mega 16 $regfile = "m16def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32


Config Servos = 2 , Servo1 = Porta.0 , Servo2 = Porta.1 , Reload = 10

Config Porta = Output

Enable Interrupts

Servo(1) = 100
Servo(2) = 100
waitms 1000

Das ganze hab ich dann übertragen, was eigenartigerweise problemlos ging. Nun müssten ja die ursprünglichen Funktionen des Testprogramms (Motorentest, Lauflicht, etc.) alle nicht mehr auf dem RN-Control laufen, da sie in meinem Code gar nicht mehr vorkommen. Resette ich das Board aber nach der Übertragung laufen alle Funktionen vollkommen uneingeschränkt. Daraus schließe ich, dass also gar nichts von dem, was ich schreibe (wenn ich über den "Com X can not be opened"-Kram hinaus komme) auf dem Chip landet :| Hilfe...