Zkus to spíš takhle:
Kód: Vybrat vše
Dim X As Byte, A as byte
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 1
Config Serialin = Buffered , Size = 16
Enable Interrupts
X = Ischarwaiting()
If X = 1 Then
A = Inkey()
...
Když přijde znak, Ischarwaiting=1, takže se znak načte do "A".
Pokud nepoužiješ "Ischarwaiting", budou se načítat nuly dokud nepřijde nějaký znak.
Vřele doporučuju použít HW UART a hodinový krystal.
99% problémů sériové komunikace je způsobeno špatnou rychlostí!!!!!!!!!
p.s. rychlost 9600b při 8MHz má chybu 0,2%, což je v pohodě (viz str.136 datasheetu 2313). Ale pokud použiješ vnitřní RC 8MHz, může kmitočet courat a můžou občas vypadávat znaky nebo přijdou "zdeformované"
Writeeeprom není dobrý nápad, eeprom má omezený počet zápisů na asi 100.000 (pokud zapíšeš 100x za sekundu, za 1000 sekund = 16 minut máš po buňce v eepromce)