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

© MCS Electronics, 1995-2007

SETFONT

Action

Sets the current font which can be used on some graphical displays.

Syntax

SETFONT font

Remarks

font The name of the font that need to be used with LCDAT statements.

Since SED-based displays do not have their own font generator, you need to define your own fonts. You can create and modify your own fonts with the FontEditor Plugin.

SETFONT will set an internal used data pointer to the location in memory where you font is stored. The name you specify is the same name you use to define the font.

You need to include the used fonts with the $include directive:

$INCLUDE "font8x8.font"

The order of the font files is not important. The location in your source is however important.

The $INCLUDE statement will include binary data and this may not be accessed by the flow of your program.

When your program flow enters into font code, unpredictable results will occur.

So it is best to place the $INCLUDE files at the end of your program behind the END statement.

You need to include the glibSED library with : $LIB "glibsed.lbx"

While original written for the SED1521, fonts are supported on a number of displays now including color displays.

See also

CONFIG GRAPHLCD , LCDAT, GLCDCMD, GLCDDATA

Example

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

 

------------

: sed1520.bas

'name

'copyright

: (c) 1995-2005, MCS Electronics

'purpose

: demonstrates the SED1520 based graphical display

support

: Mega48

'micro

'suited for demo

: yes

'commercial addon needed

: no

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

 

------------

 

page -629-

 

© MCS Electronics, 1995-2007

$regfile = "m48def.dat"

' specify the used

micro

' used crystal

$crystal = 7372800

frequency

' use baud rate

$baud = 115200

$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

 

'I used a Staver to test

 

'some routines to control the display are in the glcdSED.lib file 'IMPORTANT : since the SED1520 uses 2 chips, the columns are split into 2 of 60.

'This means that data after column 60 will not print correct. You need to locate the data on the second halve

'For example when you want to display a line of text that is more then 8 chars long, (8x8=64) , byte 8 will not draw correctly

'Frankly i find the KS0108 displays a much better choice.

$lib "glcdSED1520.lbx"

'First we define that we use a graphic LCD

Config Graphlcd = 120 * 64sed , Dataport = Porta , Controlport = Portd , Ce = 5 , Ce2 = 7 , Cd = 3 , Rd = 4

'The dataport is the portname that is connected to the data lines of the LCD 'The controlport is the portname which pins are used to control the lcd

'CE =CS Chip Enable/ Chip select

'CE2= Chip select / chip enable of chip 2 'CD=A0 Data direction

'RD=Read

'Dim variables (y not used)

Dim X As Byte , Y As Byte

'clear the screen

Cls Wait 2

'specify the font we want to use

Setfont Font8x8

'You can use locate but the columns have a range from 1-132

'When you want to show somthing on the LCD, use the LDAT command 'LCDAT Y , COL, value

Lcdat 1 , 1 , "1231231" Lcdat 3 , 80 , "11"

'lcdat accepts an additional param for inversing the text 'lcdat 1,1,"123" , 1 ' will inverse the text

Wait 2

Line(0 , 0) -(30 , 30) , 1

Wait 2

Showpic 0 , 0 , Plaatje

'show a

comnpressed picture

'end program

End

page -630-

© MCS Electronics, 1995-2007

'we need to include the font files $include "font8x8.font"

'$include "font16x16.font"

Plaatje:

'include the picture data $bgf "smile.bgf"

SETTCP

Action

(Re) Configures the TCP/IP W3100A chip.

Syntax

SETTCP MAC , IP , SUBMASK , GATEWAY

Remarks

MAC

IP

The MAC address you want to assign to the W3100A.

The MAC address is a unique number that identifies your chip. You must use a different address for every W3100A chip in your network. Example : 123.00.12.34.56.78

You need to specify 6 bytes that must be separated by dots. The bytes must be specified in decimal notation.

The IP address you want to assign to the W3100A.

The IP address must be unique for every W3100A in your network. When you have a LAN, 192.168.0.10 can be used. 192.168.0.x is used for LAN’s since the address is not an assigned internet address.

SUBMASK

The submask you want to assign to the W3100A.

 

The submask is in most cases 255.255.255.0

GATEWAY

This is the gateway address of the W3100A.

 

The gateway address you can determine with the IPCONFIG command at

 

the command prompt :

 

 

C:\>ipconfig

 

 

Windows 2000 IP Configuration

 

Ethernet adapter Local Area Connection 2:

 

Connection-specific DNS Suffix . :

 

IP Address. . . . . . . . . . . .

: 192.168.0.3

 

Subnet Mask . . . . . . . . . .

. : 255.255.255.0

 

Default Gateway . . . . . . .

. . : 192.168.0.1

 

Use 192.168.0.1 in this case.

The CONFIG TCPIP statement may be used only once.

page -631-

© MCS Electronics, 1995-2007

When you want to set the TCP/IP settings dynamicly for instance when the settings are stored in EEPROM, you can not use constants. For this purpose, SETTCP must be used.

SETTCP can take a variable or a constant for each parameter.

When you set the TCP/IP settings dynamicly, you do not need to set themwith CONFIG TCPIP. In the CONFIG TCPIP you can use the NOINIT parameter so that the MAC and IP are not initialized which saves code.

See also

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

Example

See the DHCP.BAS example from the BASCOM Sample dir.

SETTCPREGS

Action

Writes to a W3100A register

Syntax

SETTCPREGS address, var , bytes

Remarks

address

The address of the register W3100A register. This must be the value of the

 

MSB. For example in location &H92 and &H93, the timeout is stored. You

 

need to specify &H93 then.

var

The variable to write.

bytes

The number of bytes to write.

 

 

Most W3100A options are implemented with BASCOM statements or functions. When there is a need to write to the W3100A register you can use the SETTCPREGS commands. It can write multiple bytes. It is important that you specify the highest address. This because the registers must be written starting with the higest address.

See also

GETTCPREGS

ASM

NONE

Example

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

------------

page -632-

 

© MCS Electronics, 1995-2007

'name

: regs.bas

'copyright

: (c) 1995-2005, MCS Electronics

'purpose

: test custom regs reading writing

'micro

: Mega88

'suited for demo

: yes

'commercial addon needed

: no

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

 

------------

' specify the used

$regfile = "m88def.dat"

micro

 

$crystal = 8000000

' used crystal

frequency

' use baud rate

$baud = 19200

$hwstack = 80

' default use 32

for the hardware stack

' default use 10

$swstack = 128

for the SW stack

' default use 40

$framesize = 80

for the frame space

 

Const Sock_stream = $01

' Tcp

Const Sock_dgram = $02

' Udp

Const Sock_ipl_raw = $03

' Ip Layer Raw

Sock

' Mac Layer Raw

Const Sock_macl_raw = $04

Sock

' Confirm Socket

Const Sel_control = 0

Status

' Confirm Tx Free

Const Sel_send = 1

Buffer Size

' Confirm Rx Data

Const Sel_recv = 2

Size

 

'socket status

' Status Of

Const Sock_closed = $00

Connection Closed

' Status Of Arp

Const Sock_arp = $01

Const Sock_listen = $02

' Status Of

Waiting For Tcp Connection Setup

' Status Of

Const Sock_synsent = $03

Setting Up Tcp Connection

' Status Of

Const Sock_synsent_ack = $04

Setting Up Tcp Connection

' Status Of

Const Sock_synrecv = $05

Setting Up Tcp Connection

' Status Of Tcp

Const Sock_established = $06

Connection Established

' Status Of

Const Sock_close_wait = $07

Closing Tcp Connection

' Status Of

Const Sock_last_ack = $08

Closing Tcp Connection

' Status Of

Const Sock_fin_wait1 = $09

Closing Tcp Connection

' Status Of

Const Sock_fin_wait2 = $0a

Closing Tcp Connection

' Status Of

Const Sock_closing = $0b

Closing Tcp Connection

' Status Of

Const Sock_time_wait = $0c

Closing Tcp Connection

' Status Of

Const Sock_reset = $0d

Closing Tcp Connection

' Status Of Socket

Const Sock_init = $0e

Initialization

 

page -633-