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

© MCS Electronics, 1995-2007

 

$crystal = 8000000

' used crystal

frequency

' use baud rate

$baud = 19200

$hwstack = 32

' default use 32

for the hardware stack

' default use 10

$swstack = 10

for the SW stack

' default use 40

$framesize = 40

for the frame space

 

$lib "tcpip.lbx"

 

Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits

= 8 , Clockpol = 0

 

Dim S As String * 15 , Z As String * 15

 

S = "bWFyazptYXJr"

 

Z = Base64dec(s)

'mark:mark

Print Z

End

BASE64ENC

Action

Converts a string into the Base-64 representation.

Syntax

Result = BASE64ENC( source)

Remarks

Result

A string variable that is assigned with the coded string.

Source

The source string that must be code with base-64.

 

 

Base-64 is not an encryption protocol. It sends data in 7-bit ASCII data format. MIME, web servers, and other Internet servers and clients use Base-64 coding.

The provided Base64Enc() function is an encoding function. You need it when you want to send attachments with POP3 for example.

The target string will use 1 additional byte for every 3 bytes.

So make sure the target string is dimensioned longer then the original string.

See also

CONFIG TCPIP, GETSOCKET , SOCKETCONNECT, SOCKETSTAT , TCPWRITE, TCPWRITESTR, CLOSESOCKET , SOCKETLISTEN , BASE64DEC

Example

$regfile = "m48def.dat"

' specify the used

micro

' used crystal

$crystal = 8000000

frequency

' use baud rate

$baud = 19200

 

page -279-

 

© MCS Electronics, 1995-2007

$hwstack = 32

' default use 32

for the hardware stack

' default use 10

$swstack = 10

for the SW stack

' default use 40

$framesize = 40

for the frame space

 

$lib "tcpip.lbx"

Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

Dim S As String * 15 , Z As String * 15

S = "bWFyazptYXJr"

Z = Base64dec(s)

Print Z 'mark:mark

s = Base64Enc(z)

Print s

End

BAUD

Action

Changes the baud rate for the hardware UART.

Syntax

BAUD = var

BAUD #x , const

Remarks

Var

The baud rate that you want to use.

X

The channel number of the software UART.

Const

A numeric constant for the baud rate that you want to use.

 

 

Do not confuse the BAUD statement with the $BAUD compiler directive.

And do not confuse $CRYSTAL and CRYSTAL

$BAUD overrides the compiler setting for the baud rate and BAUD will change the current baud rate.

So $BAUD is a global project setting in your source code while BAUD will change the baud rate during run time.

You could use BAUD to change the baud rate during run time after the user changes a setting.

BAUD = ... will work on the hardware UART.

BAUD #x, yyyy will work on the software UART.

See also

page -280-

© MCS Electronics, 1995-2007

$CRYSTAL , $BAUD , BAUD1

ASM

NONE

Example

$regfile = "m48def.dat" $crystal = 4000000 $baud = 19200

Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

Print "Hello"

'Now change the baud rate in a program Baud = 9600

Print "Did you change the terminal emulator baud rate too?"

End

BAUD1

Action

Changes the baud rate for the second hardware UART.

Syntax

BAUD1 = var

BAUD1 #x , const

Remarks

Var

The baud rate that you want to use.

X

The channel number of the software UART.

Const

A numeric constant for the baud rate that you want to use.

 

 

Do not confuse the BAUD1 statement with the $BAUD1 compiler directive.

And do not confuse $CRYSTAL and CRYSTAL

$BAUD1 overrides the compiler setting for the baud rate and BAUD1 will change the current baud rate.

BAUD1 = ... will work on the hardware UART. BAUD #x, yyyy will work on the software UART.

See also

$CRYSTAL , $BAUD , $BAUD1 , BAUD

ASM

page -281-

© MCS Electronics, 1995-2007

NONE

Example

'-----------------------------------------------------------------------------

 

--

: (c) 1995-2005, MCS Electronics

'copyright

'micro

: Mega162

'suited for demo

: yes

'commercial addon needed

: no

'purpose

: demonstrates BAUD1 directive and BAUD1 statement

'-----------------------------------------------------------------------------

--

$regfile = "M162def.dat" $baud1 = 2400

$crystal= 14000000 ' 14 MHz crystal

Open "COM2:" For BINARY As #1

Print #1 , "Hello"

'Now change the baud rate in a program

Baud1 = 9600 ' Print #1 , "Did you change the terminal emulator baud rate too?"

Close #1

End

BCD

Action

Converts a variable stored in BCD format into a string.

Syntax

PRINT BCD( var )

LCD BCD( var)

Remarks

Var Numeric variable to convert.

When you want to use an I2C clock device which stores its values in BCD format you can use this function to print the value correctly.

BCD() displays values with a leading zero.

The BCD() function is intended for the PRINT/LCD statements.

Use the MAKEBCD function to convert variables from decimal to BCD.

Use the MAKEDEC function to convert variables from BCD to decimal.

See also

MAKEDEC , MAKEBCD

ASM

page -282-

© MCS Electronics, 1995-2007

Calls: _BcdStr

Input: X hold address of variable

Output: R0 with number of bytes, frame with data.

Example

'-----------------------------------------------------------------------------

 

---

: bcd.bas

'name

'copyright

: (c) 1995-2005, MCS Electronics

'purpose

: demonstration of split and combine BCD Bytes

'suited for demo

: yes

'commercial addon needed

: no

'use in simulator

: possible

'-----------------------------------------------------------------------------

 

---

' specify the used

$regfile = "m48def.dat"

micro

' used crystal

$crystal = 4000000

frequency

' use baud rate

$baud = 19200

Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits

= 8 , Clockpol = 0

 

$hwstack = 32

' default use 32

for the hardware stack

' default use 10

$swstack = 10

for the SW stack

' default use 40

$framesize = 40

for the frame space

 

'=============================================================================

==

' Set up Variables '=============================================================================

==

'Setup A Variable

Dim A As Byte

Dim B As Byte

'Setup B Variable

Dim C As Byte

'Setup C Variable

A = &H89 '=============================================================================

==

' Main '=============================================================================

==

 

 

Main:

" ; Hex(a)

'Print A

Print "Combined :

'-----------------------------------------------------------------------------

 

 

--

 

'Mask To Get Only High

B = A And &B1111_0000

Nibble Of Byte

 

'Shift High Nibble To

Shift B , Right , 4

 

Low Nibble Position , Store As B

 

C = A And &B0000_1111

'Mask To Get Only Low

Nibble Of Byte , Store As C

 

Print "Split :

" ; B ; " " ; C

'Print B (High Nibble)

, C(low Nibble)

 

 

'-----------------------------------------------------------------------------

page -283-

© MCS Electronics, 1995-2007

 

--

'Shift Data From Low

Shift B , Left , 4

Nibble Into High Nibble Position

 

A = B + C

'Add B (High Nibble)

And C(low Nibble) Together

 

Print "Re-Combined: " ; Hex(a)

'Print A (re -combined

Byte)

'End Program

End

BIN

Action

Convert a numeric variable into the binary string representation.

Syntax

Var = Bin(source)

Remarks

Var

The target string that will be assigned with the binary

 

representation of the variable source.

Source

The numeric variable that will be converted.

 

 

The BIN() function can be used to display the state of a port.

When the variable source has the value &B10100011 the string named var will be assigned with "10100011".

It can be easily printed to the serial port.

See also

HEX , STR , VAL , HEXVAL , BINVAL

ASM

NONE

Example

$regfile = "m48def.dat"

' specify the used

micro

' used crystal

$crystal = 8000000

frequency

' use baud rate

$baud = 19200

$hwstack = 32

' default use 32

for the hardware stack

' default use 10

$swstack = 10

for the SW stack

' default use 40

$framesize = 40

for the frame space

 

Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits

page -284-