PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Reset bei Print, Inkey, Ischarwaiting und Waitkey ?



Muckel
26.05.2006, 13:59
Hallo,
jetzt hab ich mein erstes Bascom-Programm geschrieben und schon kommen die Probleme.
Da ich für spätere Anwendungen eine serielle Befehlsübergabe angedacht habe,
hab ich mich zuerst (nach dem Demoprogramm zum RN-Controller it ATMEGA32) mit der
Eingabemöglichkeiten über die Tastatur mit RS232 beschäftigt.

Also so Sachen wie Print, Inkey(), Ischarwaiting() und Waitkey()....
Diese Dinge funktioniern auch im Simulator sehr gut,
wenn ich das Programm aber in den Controller übertrage und den Terminal-Emulator
zur Kontrolle verwende, dann startet das Programm unregelmässig wieder neu.
Es scheint so, als würde ab und zu (nach 5-10 Tastatureingaben) ein Reset ausgeführt.
Vielleicht liegts ja an der BasCom-Version ( 1.11.8.1 ) oder an den Einstellungen,
oder..oder..oder..oder..keine Ahnung - es ist ja mein erstes Basicprogramm.

Vielleicht kennt ja jemand die Lösung des Problems..
für Hilfe wäre ich sehr dankbar!

Hier ist mein Testprogramm:



$regfile = "m32def.dat"
$framesize = 128
$swstack = 128
$hwstack = 128

$crystal = 16000000
$baud = 9600

Dim A As Byte
Dim Taste As Byte

Print "***** RN-CONTROL 1.4 *****"
Print "Teste die Terminal-RS232-Eingabe"
Print "***************************"

Print
Print
Print "TEST 02 - InKey bis ESC"

A = 0
While A <> 27
A = 0
While A < 1
A = Inkey()
Wend

Select Case A
Case 0 : Print "<<<< 0 >>>>"
Case 48 To 90 : Print "Test 02 : Tastatur-Code " ; A ; " => " ; Chr(a)
Case 97 To 122 : Print "Test 02 : Tastatur-Code " ; A ; " => " ; Chr(a)
Case Else : Print "Test 02 : Tastatur-Code..." ; A
End Select
Waitms 250

Wend

Print "TEST 02 beendet....."


Print
Print
Print "TEST 01 Test von Ischarwaiting() bis ESC"
Do
A = 0
Taste = Ischarwaiting()
If Taste = 1 Then
A = Waitkey()

Select Case A
Case 48 To 90 : Print "Test 01 : ASCII-Code " ; A ; " => " ; Chr(a) ; " von Tastatur"
Case 97 To 122 : Print "Test 01 : ASCII-Code " ; A ; " => " ; Chr(a) ; " von Tastatur"
Case Else : Print "Eingabe nicht darstellbar"
End Select
Waitms 250
End If

Loop Until A = 27
Print "TEST 01 beendet....."

Print
Print
Print "********* ENDE *********"

End

Mit den Code-Tags wird das übersichtlicher (PicNick)