Avendo avuto il dubbio che il problema fosse dovuto alla assenza di interrupt ho testato il semplice codice che allego e che al momento non funziona mai mentre un codice più complesso, ma simile nel meccanismo di cattura della seriale, funziona "a targhe alterne" (sempre in simulazione).
Questo test confermerebbe che non si ha nessun interrupt infatti un "print a" messo prima dell' IF scrive sempre e solo 0 mentre quello messo dopo non scrive, ovviamente, mai nulla.
L'input lo fornisco mediante la tastiera del PC.
Avendo avuto in passato qualche problema con il simulatore, ho anche provato a resettare il PC ma nulla.
Girellando in rete mi pare di non essere il solo a scornarmi con Ischarwaiting...
Qualche idea? Vi ringrazio in anticipo
- Code: Select all
$sim
$regfile = "m48def.dat"
$crystal = 8000000
$baud = 19200
$hwstack = 32
$swstack = 10
$framesize = 40
Config Serialin = Buffered , Size = 20
Dim a as byte
Enable Interrupts
Do
a = Ischarwaiting()
If a = 1 Then
print a
End If
Loop