Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BASCOM AVR, help reference (2007).PDF
Скачиваний:
281
Добавлен:
12.08.2013
Размер:
17.02 Mб
Скачать

© 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

page -670-

© 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

page -672-

 

© 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

page -673-