ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.06.2025

Просмотров: 8143

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

© MCS Electronics, 1995-2007

Print "Second of Day of " ; Time$ ; " is " ; Lsecofday

'Example 2 with defined Clock - Bytes (Second / Minute / Hour) Bsec = 20 : Bmin = 1 : Bhour = 7

Lsecofday = Secofday(bsec)

Print "Second of Day of Sec=" ; Bsec ; " Min=" ; Bmin ; " Hour=" ; Bhour ; " (" ; Time(bsec) ; ") is " ; Lsecofday

'Example 3 with System Second

Lsyssec = 1234456789 Lsecofday = Secofday(lsyssec)

Print "Second of Day of System Second " ; Lsyssec ; "(" ; Time(lsyssec) ; ") is " ; Lsecofday

' Example 4 with Time - String Strtime = "04:58:37"

Lsecofday = Secofday(strtime)

Print "Second of Day of " ; Strtime ; " is " ; Lsecofday

SEEK

Action

Function: Returns the position of the next Byte to be read or written

Statement: Sets the position of the next Byte to be read or written

Syntax

Function: NextReadWrite = SEEK (#bFileNumber)

Statement: SEEk #bFileNumber, NewPos

Remarks

bFileNumber

(Byte) Filenumber, which identifies an opened file

NextReadWrit

A Long Variable, which is assigned with the Position of the next Byte to

e

be read or written (1-based)

NewPos

A Long variable that holds the new position the file pointer must be set

too.

This function returns the position of the next Byte to be read or written. If an error occurs, 0 is returned. Check DOS-Error in variable gbDOSError.

The statement also returns an error in the gbDOSerror variable in the event that an error occurs.

You can for example not set the file position behinds the file size.

In VB the file is filled with 0 bytes when you set the file pointer behind the size of the file. For embedded systems this does not seem a good idea.

Seek and Loc seems to do the same function, but take care : the seek function willreturn the position of the next read/write, while the Loc function returns the position of the astl read/write. You may say that Seek = Loc+1.

page -624-


© MCS Electronics, 1995-2007

In QB/VB you can use seek to make the file bigger. When a file is 100 bytes long, setting the file pointer to 200 will increase the file with 0 bytes. By design this is not the case in AVR-DOS.

See also

INITFILESYSTEM , OPEN , CLOSE, FLUSH , PRINT, LINE INPUT, LOC, LOF , EOF , FREEFILE , FILEATTR , BSAVE , BLOAD , KILL , DISKFREE , DISKSIZE , GET , PUT , FILEDATE , FILETIME , FILEDATETIME , DIR , FILELEN , WRITE , INPUT

ASM

Function

_FileSeek

Calls

Input

r24: filenumber

X: Pointer to Long-variable, which gets the

result

Output

r25: Errorcode

C-Flag: Set on Error

Statement

_FileSeekSet

Calls

Input

r24: filenumber

X: Pointer to Long-variable with the position

Output

r25: Errorcode

C-Flag: Set on Error

Partial Example

Open "test.biN"for Binary As #2

' write a byte

Put#2 , B

Put#2 , W

' write a word

Put#2 , L

' write a long

Ltemp = Loc(#2) + 1

' get the position

of the next byte

' store the

Print Ltemp ; " LOC"

location of the file pointer

Print Seek(#2) ; " = LOC+1"

Close #2

'now open the file again and write only the single

Open "test.bin" For Binary As #2

' set the

Seek#2 , Ltemp

filepointer

' change the

Sn = 1.23

single value so we can check it better

'specify the file

Put #2 , Sn = 1

position

Close #2

SELECT-CASE-END SELECT

Action

page -625-


© MCS Electronics, 1995-2007

Executes one of several statement blocks depending on the value of an expression.

Syntax

SELECT CASE var

CASE test1 : statements [CASE test2 : statements ] CASE ELSE : statements

END SELECT

Remarks

Var

Variable to test the value of

Test1

Value to test for.

Test2

Value to test for.

You can test for conditions to like:

CASE IS > 2 :

Another option is to test for a range :

CASE 2 TO 5 :

See also

IF THEN

Example

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

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

: case.bas

'name

'copyright

: (c) 1995-2005, MCS Electronics

'purpose

: demonstrates SELECT CASE statement

'micro

: Mega48

'suited for demo

: yes

'commercial addon needed

: no

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

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

$regfile = "m48def.dat"

' specify the used

micro

' used crystal

$crystal = 4000000

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

Dim I As Byte

'dim variable

Dim S As String * 5 , Z As String * 5

page -626-


© MCS Electronics, 1995-2007

Do

Input "Enter value (0-255) " , I

Select Case I

Case 1 : Print "1"

Case 2 : Print "2"

Case 3 To 5 : Print "3-5"

Case Is >= 10 : Print ">= 10"

Case Else : Print "Not in Case statement"

End Select

Loop

End

'note that a Boolean expression like > 3 must be preceded 'by the IS keyword

SET

Action

Set a bit to the value one.

Syntax

SET bit

SET var.x

Remarks

Bit

Bitvariable.

Var

A byte, integer, word or long variable.

XBit of variable (0-7) to set. (0-15 for Integer/Word) and (0-31) for Long

See also

RESET , TOGGLE

Example

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

---

: boolean.bas

'name

'copyright

: (c) 1995-2005, MCS Electronics

'purpose

: demo: AND, OR, XOR, NOT, BIT and MOD

'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

$hwstack = 32

' default use 32

page -627-