I just tried some test code out
Now, that code *should* wait for a 255. When it gets it it resets recpos to 0. Each byte after that should end up in InBuffer until recpos=17. At that point a light should turn on (porta.1)Code:'The main loop loop: 'Check for serial data if pir1.5=1 then 'Check if there is any serial data while pir1.5 'Loop through all the data indata=RCREG 'Get a byte select case indata case 255 'Reset the buffer recpos=0 case else if recpos<17 then inbuffer(recpos)=indata recpos=recpos+1 else high porta.1 endif end select wend if rcsta.1=1 then rcsta.4=0 rcsta.4=1 endif endif goto loop
The reset part does seem to be working but not all the bytes arrive. The light wont come on until i send another 1-3 bytes.
I should point out im not using the MAX232 chip because they havnt arrived yet but instead i linked into one of Matts boxes which has an alternative solution. I cant see why that would cause a problem but ive just found out that when i set the address it gets set to 1 less than what i actually set it to


Ive only got 1 output working at the moment though. Ive got to put a loop in to handle all outputs and ive got to put the set address code back in but as it is the attached code is working perfectly.

Bookmarks