maybe this one may help
http://www.picbasic.co.uk/forum/showthread.php?t=1192
maybe this one may help
http://www.picbasic.co.uk/forum/showthread.php?t=1192
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
Thank you guys for the responses you gave me. I'm sorry I couldn't thank you sooner...been busy trying picbasic. I've got one more question, that I hope one of you can help me with. I can't seem to get my head around how the pic can take in three bytes in a row from the PC...
(ie: mscomm1.output = 9 + 22 + 1)
and know that the first byte is the address, the second is the output, and the third is the state? I think I'm just over-thinking this. Can one of you gentleman help me understand this?
Do I do it like this:
serpin VAR porta.0
address VAR b3
output VAR b4
stat VAR b5
If b3 = PORTB then
SERIN serpin,N2400,address,output,stat..........
is serpin b1
is N2400 b2
is address b3
is output b4
is stat b5
Am I thinking correctly, or am I way off base?
Thanks for letting me bend your ear...
Chris
Hi,
Most of the time your PIC should be listening to the available data. Use some sort of acknowledge when it receives a valid packet. You can try respond through the control lines of the RS232 ports.
Other possibilities are using the PIC's hardware USART. The hardware USART normally has a two byte buffer and generates an interrupt when a byte is received.
By using Darrel's Instant Interrupt implementing it should not be a big deal.
All you need to do it get the bytes in a ring array or FIFO for processing later. Use some sort of unique Header and Terminator in your packet send by the PC. If your are using a FIFO in your main program loop go on hunting for the terminator(the last byte received). When found you can check your FIFO's deepest location (since the data packet length is fixed) for a valid header. If found then anything between your header and terminator is your data packet.
Regards
Sougata
Bookmarks