Wat je nodig hebt is HSERIN. HSERIN maakt gebruik van de USART module van de pic. SERIN is een software matige USART. Wat je verder nodig hebt is een max232, hoe je die aan moet sluiten staat veel op internet en ook in de picbasic handleiding. Eigenlijk staat alles dat je moet weten in de handleiding.
De Hserin syntax is
HSERIN timeout, timeout label, (parity error label) [variabele]
timeout is de tijd (in ms) die de pic wacht voordat ze naar de timeout label springt.
Timeout label is de routine waar de pic naar toe gaat in geval van een time out.
[variabele] is de variabele waar de pic de ontvangen data in opslaat.
Bij Hserout is de syntax
hserout [variabele]
Stukje voorbeeld code
code:
device 16f628a
xtal = 4
symbol time_out = 1000
dim ontvangen as byte
dim verzenden as byte
heserial_baud = xx ;baud waarde
hserial_rcsta = %xx ;instellingen rcsta register
hserial_txsta = %xx ;instellingen txsta register
hserial_clear = on/off ;buffer legen voor ontvangen
while (1)
HSERIN time_out, timeout, [ontvangen] ;ontvang
if ontvangen > 127 then
high portb.0 ;toggle ledje
else
low portb.0
endif
verzenden = ontvangen / 5
HSEROUT [verzenden] ;zend wat terug
wend
timeout: ;in geval van timeout
cls ; wis scherm
print "time out" ;error indicatie
stop ;stoppen
De berekeningen en waarden voor baud en rc%txsta kan je allemaal terug vinden in de pic datasheet.
Bij dit soort communicatie is het belangrijk dat er een xtal aan je pic zit. De ingebouwde rc schakeling is niet nauwkeurig genoeg.