1

I'm in the process of updating an old BS2 (basic stamp) Rev for an Ardunio for a piece of hardware for the company I work for, and I've just encountered a couple pieces of code that I'm not too sure on and I'd like some clarification. I've looked for a bit, but a couple of these are just not listed anywhere. I can't post the full code here for obvious reason, so I'll clarify other information as needed.

CONVERT_AD:                                      
  CONFIG_AD = CONFIG_AD |%1011                     'Set all bits except channel.
  LOW CHIP_SELECT                                  'Activate the ADC.
  SHIFTOUT DATA_IO,CLOCK,LSBFIRST,[CONFIG_AD\4]    'Send config bits.
  SHIFTIN DATA_IO,CLOCK,MSBPOST,[AD_RESULT\12]     'Get data bits.
  HIGH CHIP_SELECT                                 'Deactivate the ADC.
  RETURN 

The line that's got me here is the CONFIG_AD = CONFIG_AD |%1011. It appears to obvious be a binary conversion, but I don't know what the operators are in this case. It looks like a 'assign'.

The value of CONFIG_AD is a word, if that's of any importance. It is hooking a pin for a half-duplex communication with a LTC1298 CN8 A-D converter. I've also read the data sheet, but it doesn't provide a lot of information regarding this. I think it's a 12 bit device? (though I'm not sure).

Just a lot of this information is really outdated and not maintained, so finding good information is really proving to be a bitch.

Also, the shift in/shift out, I'm curious why they have the two division functions on this? It seems to be converting it to another format, any explanation of why this is?

And on a slightly related note that is more of a save me time question, rather than I need to know, for the basic stamp, does anyone know it's hertz rates for the clock speed?

Kusalananda
  • 14,885
  • 3
  • 41
  • 52
Metric
  • 88
  • 1
  • 11
  • From [this random BASIC Stamp reference](https://www.active-robots.com/fileuploader/download/download/?d=0&file=custom%2Fupload%2FFile-1306314689.pdf) which may or may not be applicable, `%1011` is a binary literal - table on page 173 for example, and `|` is a binary `OR` operator (page 118). A PBasic word [is 16 bits](https://en.wikibooks.org/wiki/PBASIC_Programming/Data_Types). So it's logical OR setting three of the bits in CONFIG_AD, and keeping the rest unchanged. – TessellatingHeckler Jun 27 '16 at 16:26

0 Answers0