[chbot] HEX and ANSII ATMEGA and Delphi

Andrew Errington erringtona at gmail.com
Fri Oct 23 23:00:03 BST 2020


Hi Wallace,

What are you trying to do? It sounds like you want to dump the value of
tcnt1, a 16-bit register, from the serial port and reconstruct it in Delphi.

When it arrives in Delphi do you want it to be an unsigned int, or a string?

Since you are in control of both ends you can do whatever is easiest. As
far as I can see you could serialise the source value to a string of ASCII
digits, either hex or decimal and send those (hex is shorter, e.g. FFFF is
"FFFF", 4 characters in hex or "65535", 5 characters in decimal). Or you
can send two bytes verbatim, e.g. 0xFF 0xFF, 2 characters only.

You probably want a start and end marker too, so the receiver knows how to
split up the incoming data stream. If you are sending a string usually you
can use \n as an end marker.

The receiving end has to know the format of the incoming data, then read
each character and decide what it means.

If you only want a human-readable output and you are sending a string then
you are done. Otherwise you need to get the first verbatim byte, shift it
left, then OR in the second byte to build a 16-bit value. Once you have
this 16-bit value you can do what you like with it.

HTH,

Andrew


On Sat, 24 Oct 2020, 10:28 Andrew Starr, <ajstarr at gmail.com> wrote:

> Hi Wallace,
>
> There is support for base64 in the Arduino libraries (if you're using
> them). But with base64 you're encoding 3 bytes with 4, so if you're only
> sending a single byte per transaction it probably isn't much use to you.
> A LUT would certainly be faster, although you're trading code space for
> speed - depends on what your priorities are.
>
> Cheers
>
> On 24/10/20 10:16 am, Marshland Engineering wrote:
> > Hi Andrew.
> >
> > Thanks for the reply. I've just done a few c programs for my own use so
> not so
> > great on this.
> > First time I have heard of base64.  Basically I want to send the value
> of the
> > tcnt1 to the PC.
> >
> >  From my reading on base64, it looks like I have to create my own
> routine for
> > this ?
> >
> > Now that you have got me thinking, I can just create my own look up
> table and
> > convert HEX 1,2-F into string "1", "2" etc. That is quite easy and I can
> then
> > send data separator characters as well.
> >
> > Thanks Wallace
> >
>
>
> _______________________________________________
> Chchrobotics mailing list Chchrobotics at lists.ourshack.com
> https://lists.ourshack.com/mailman/listinfo/chchrobotics
> Mail Archives: http://lists.ourshack.com/pipermail/chchrobotics/
> Meetings usually 3rd Monday each month. See http://kiwibots.org for
> venue, directions and dates.
> When replying, please edit your Subject line to reflect new subjects.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ourshack.com/pipermail/chchrobotics/attachments/20201024/b04c3e4b/attachment.html>


More information about the Chchrobotics mailing list