Welcome to the forum.
What chip are you using?The chip I use does not support serin2 or hserin
It may not have a USART but I can not think why SERIN2 would not work on any chip.
Welcome to the forum.
What chip are you using?The chip I use does not support serin2 or hserin
It may not have a USART but I can not think why SERIN2 would not work on any chip.
Dave
Always wear safety glasses while programming.
Hi Mackrackit,
Thank you.
It is PIC16HV540.
it has only 512 words of program memory, 25 bytes or RAM (enough for only three variables) and nothing else. BUT it is 15 volt chip including full 8 bit 15 volt port B (actually I use only two lines of them)
This is interesting. I have never used a chip this "small"....
What does the data stream look like and what part do you want to skip? Then what do you want to do with it?
Dave
Always wear safety glasses while programming.
it is a repeating string and the bytes I need are located 9 bytes after symbol 85. Ideally there are 7 bytes I want to know but I have room only for three variables, so I may have to read them one by one every next sycle or use only the first one as it is most important and I only need to ignite a warning LED at certain read value. Now I do it this way:
SERIN PORTB.3,T2400,4000,CLR,[85],VAR,VAR,VAR,VAR,VAR,VAR,VAR,VAR,VAR,VAR
Skipping 9 bytes cost me 45 words of memory which is near 9% of what I have totally
Yes, this chip is very small, but I could not find another one with at least one 15 volt port (regular or open drain) to read and write serial data directly
Well I am stuck...
Why not use another chip and a MAX232? Then the data could be pulled into an array.
Dave
Always wear safety glasses while programming.
Hi Alexey,
This program compiles to 124 words with a 16HV540.
This one is 154 words.Code:INCLUDE "modedefs.bas" RX VAR PORTB.3 B0 VAR BYTE SERIN RX, T2400,[85]But this one using DEBUGIN is only 75 words.Code:INCLUDE "modedefs.bas" RX VAR PORTB.3 B0 VAR BYTE SERIN RX, T2400,[85],B0,B0,B0,B0,B0,B0,B0,B0,B0,B0IF only I had a 16HV540 to test it on.Code:DEFINE DEBUGIN_REG PORTB ' Debugin pin port DEFINE DEBUGIN_BIT 3 ' Debugin pin bit DEFINE DEBUGIN_MODE 0 ' Debugin mode: 0 = True, 1 = Inverted DEFINE DEBUG_BAUD 2400 ' Debug baud rate B0 VAR BYTE MyData VAR BYTE DEBUGIN [WAIT(85)] ' wait for 85 FOR B0 = 1 TO 9 DEBUGIN [MyDATA] ' skip 9 bytes NEXT B0 DEBUGIN [MyDATA] ' get the desired byte![]()
DT
Thanks again Darrel,
I never even thought to try DEBUGIN and I certainly did not realize how compact it is.
Another entry in the note book.
Dave
Always wear safety glasses while programming.
Bookmarks