© MCS Electronics, 1995-2007
Config Spi = Soft , Din = Pinb.0 , Dout = Portb.1 , Ss = Portb.2 , Clock = Portb.3
Spiinit |
|
|
Dim a(10) as Byte , X As Byte |
|
|
Spiout A(1) , 5 |
'send 5 |
bytes |
Spiout X , 1 |
'send 1 |
byte |
A(1) = Spimove(5) |
' move 5 to SPI |
and store result in a(1) |
|
|
End |
|
|
SPIOUT
Action
Sends a value of a variable to the SPI-bus.
Syntax
SPIOUT var , bytes
Remarks
var |
The variable whose content must be send to the SPI-bus. |
bytes |
The number of bytes to send. Maximum value is 255. |
|
|
When SPI is used in HW(hardware) mode, there might be a small delay/pause after each byte that is sent. This is caused by the SPI hardware and the speed of the bus. After a byte is transmitted, SPSR bit 7 is checked. This bit 7 indicates that the SPI is ready for sending a new byte.
See also
SPIIN , SPIINIT , CONFIG SPI , SPIMOVE
Example
Dim A(10) As Byte
Config Spi = Soft , Din =Pinb.0 , Dout =Portb.1 , Ss =Portb.2 , Clock =Portb.3
Spiinit
Spiout A(1), 4 'write 4 bytes a(1), a(2) , a(3) and a(4)
End
SPLIT
Action
Split a string into a number of array elements.
Syntax
© MCS Electronics, 1995-2007
count = SPLIT (source, array, search)
Remarks
count |
The number of elements that SPLIT() returned. When the array is not big |
|
enough to fill the array, this will be the maximum size of the array. So |
|
make sure the array is big enough to hold the results. |
source |
The source string or string constant to search for. |
array |
The index of the first element of the array that will be filled |
search |
The character to search for. This can be a string or string constant. |
|
|
When you use the serial port to receive data, in some cases you need to process the data in parts.
For example when you need to split an IP number as "123.45.24.12" you could use INSTR() or you can use SPLIT().
You must DIM the array yourself. The content of the array will be overwritten.
It is also important to know that the individual elements of the array need to be big enough to store the string part.
For example when the array has 5 elements and each element may be 10 characters long, a string that is 11 bytes long will not fit. Another element will be used in that case to store the additional info.
The SPLIT function takes care not to overwrite other memory. So when you split "1.2.2.2.2.2.2.3.3.3" into an array of 3 elelements, you will loose the data.
See also
INSTR
Example |
|
'-------------------------------------------------------------- |
mega48.bas |
' |
' |
mega48 sample file |
' |
(c) 1995-2005, MCS Electronics |
'-------------------------------------------------------------- |
|
$regfile = "m48def.dat" $crystal = 8000000 $baud = 19200
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Dim S As String * 80
Dim Ar(5) As String * 10
Dim Bcount As Byte
'The split function can split a string or string constant into elements 'It returns the number of elements
'You need to take care that there are enough elements and that each element is big enough
'to hold the result
'When a result does not fit into 1 element it will be put into the next element
'The memory is protected against overwriting.
S = "this is a test"
Bcount = Split( "this is a test" , Ar(1) , " ")
page -671-
© MCS Electronics, 1995-2007
'bcount will get the number of filled elements 'ar(1) is the starting address to use
'" " means that we check for a space
'When you use " aa" , the first element will contain a space Bcount = Split( "thiscannotfit! into the element" , Ar(1) , " ")
Dim J As Byte
For J = 1 To Bcount
Print Ar(j)
Next
'this demonstrates that your memory is safe and will not be overwritten when there are too many string parts
Bcount = Split( "do not overflow the array please" , Ar(1) , " ")
For J = 1 To Bcount
Print Ar(j)
Next
End
SQR
Action
Returns the Square root of a variable.
Syntax
var = SQR( source )
Remarks
var |
A numeric single or double variable that is assigned with the SQR |
|
of variable source. |
source |
The single or double variable to get the SQR of. |
|
|
When SQR is used with a single, the FP_TRIG library will be used.
When SQR is used with bytes, integers, words and longs, the SQR routine from MCS.LBX will be used.
See Also
POWER
Example
$regfile = "m48def.dat" |
' specify the used |
micro |
' used crystal |
$crystal = 8000000 |
frequency |
' use baud rate |
$baud = 19200 |
$hwstack = 32 |
' default use 32 |
|
© MCS Electronics, 1995-2007 |
for the hardware stack |
' default use 10 |
$swstack = 40 |
for the SW stack |
' default use 40 |
$framesize = 40 |
for the frame space |
|
Dim A As Single |
|
Dim B As Double |
|
A = 9.0 |
|
B = 12345678.123 |
|
A =Sqr(A) |
' prints 3.0 |
Print A |
B = Sqr(b) |
|
Print B |
|
End |
|
START
Action
Start the specified device.
Syntax
START device
Remarks
Device TIMER0, TIMER1, COUNTER0 or COUNTER1, WATCHDOG, AC (Analog comparator power) or ADC(A/D converter power)
You must start a timer/counter in order for an interrupt to occur (when the external gate is disabled).
TIMER0 and COUNTER0 are the same device.
The AC and ADC parameters will switch power to the device and thus enabling it to work.
See also
STOP
Example
'----------------------------------------------------------------------------- |
|
--- |
: adc.bas |
'name |
'copyright |
: (c) 1995-2005, MCS Electronics |
'purpose |
: demonstration of GETADC() function for 8535 or |
M163 micro |
: Mega163 |
'micro |
'suited for demo |
: yes |
'commercial addon needed |
: no |
'use in simulator |
: possible |