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

© MCS Electronics, 1995-2007

Dim Bsec As Byte , Bmin As Byte , Bhour As Byte

Dim Bday As Byte , Bmonth As Byte , Byear As Byte

Dim Wsysday As Word

Dim Lsyssec As Long

'Example 1 with internal RTC-Clock

'Load RTC-Clock for example - testing

_sec = 17 : _min = 35 : _hour = 8 : _day = 16 : _month = 4 : _year = 3 Lsyssec = Syssec()

Print "System Second of " ; Time$ ; " at " ; Date$ ; " is " ; Lsyssec

'System Second of 08:35:17 at 03.04.16 is 103797317

'Example 2 with with defined Clock - Bytes (Second, Minute, Hour, Day / Month / Year)

Bsec = 20 : Bmin = 1 : Bhour = 7 : Bday = 22 : Bmonth = 12 : Byear = 1 Lsyssec = Syssec(bsec)

Strtime = Time_sb(bsec) : Strdate = Date_sb(bday)

Print "System Second of " ; Strtime ; " at " ; Strdate ; " is " ; Lsyssec

'System Second of 07:01:20 at 01.12.22 is 62319680

'Example 3 with Time and Date - String

Strtime = "04:58:37" strDate ="02.09.18"

Lsyssec = Syssec(strtime , Strdate)

Print "System Second of " ; Strtime ; " at " ; Strdate ; " is " ; Lsyssec ' System Second of 04:58:37 at 02.09.18 is 85640317

'Example 4 with System Day Wsysday = 2000

Lsyssec = Syssec(wsysday)

Print "System Second of System Day " ; Wsysday ; " (00:00:00) is " ; Lsyssec

'System Second of System Day 2000 (00:00:00) is 172800000

SYSSECELAPSED

Action

Returns the elapsed Seconds to a earlier assigned system-time-stamp.

Syntax

Target = SysSecElapsed(SystemTimeStamp)

Remarks

Target

A variable (LONG), that is assigned with the elapsed Seconds

SystemTimeStamp

A variable (LONG), which holds a Systemtimestamp like the output

 

of an earlier called SysSec()

 

 

The Return-Value is in the Range of 0 to 2147483647. The Function is valid from 2000-01-01 to 2068-01-19 at 03:14:07. In the year 2068 a LONG – overflow will occur.

The difference to the pair DayOfSec and SecElapsed is, that SysSec and SysSecElapsed can

page -683-

© MCS Electronics, 1995-2007

be used for event distances larger than 24 hours.

See also

Date and Time Routines , SECELAPSED, SYSSEC

Example

Enable Interrupts

Config Clock = Soft

Dim Lsystemtimestamp As Long

Dim Lsystemsecondselapsed As Long

Lsystemtimestamp = Syssec()

Print "Now it's " ; Lsystemtimestamp ; " seconds past 2000-01-01 00:00:00"

'do other stuff

'some time later

Lsystemsecondselapsed = Syssecelapsed(lsystemtimestamp) Print "Now it's " ; Lsystemsecondselapsed ; " seconds later"

SYSDAY

Action

Returns a number, which represents the System Day

Syntax

Target = SysDay()

Target = SysDay(bDayMonthYear)

Target = SysDay(strDate)

Target = SysDay(lSysSec)

Remarks

Target

A Variable (LONG), that is assigned with the System-Day

bDayMonthDay A Byte, which holds the Day-value followed by Month(Byte) and Year

 

(Byte)

strDate

A String, which holds a Date-String in the format specified in the

 

CONFIG DATA statement

lSysSec

A variable, which holds a System Second (SysSec)

The Function can be used with 4 different kind of inputs:

1.Without any parameter. The internal Date-values of SOFTCLOCK (_day, _month, _year) are used.

2.With a user defined date array. It must be arranged in same way (Day, Month, Year) as the internal SOFTCLOCK date. The first Byte (Day) is the input by this kind of usage. So the Day of the Year can be calculated of every date.

3.With a Date-String. The date-string must be in the Format specified in the Config Date Statement.

page -684-

©MCS Electronics, 1995-2007

4.With a System Second Number (LONG)

The Return-Value is in the Range of 0 to 36524. 2000-01-01 starts with 0. The Function is valid in the 21th century (from 2000-01-01 to 2099-12-31).

See also

Date and Time Routines , Config Date , Config Clock , SysSec

Example

Enable Interrupts

Config Clock = Soft

Config Date = YMD , Separator =.' ANSI-Format

Dim Strdate As String * 8

Dim Bday Asbyte , Bmonth As Byte , Byear As Byte

Dim Wsysday As Word

Dim Lsyssec As Long

' Example 1 with internal RTC-Clock

_day = 20 : _Month = 11 : _Year = 2 ' Load RTC-Clock for example - testing Wsysday = Sysday()

Print "System Day of " ; Date$ ; " is " ; Wsysday

'System Day of 02.11.20 is 1054

'Example 2 with defined Clock - Bytes (Day / Month / Year) Bday = 24 : Bmonth = 5 : Byear = 8

Wsysday = Sysday(bday)

Print "System Day of Day=" ; Bday ; " Month=" ; Bmonth ; " Year=" ; Byear ; " is " ; Wsysday

'System Day of Day=24 Month=5 Year=8 is 3066

'Example 3 with Date - String

Strdate = "04.10.29"

Wsysday = Sysday(strdate)

Print "System Day of " ; Strdate ; " is " ; Wsysday

'System Day of 04.10.29 is 1763

'Example 4 with System Second Lsyssec = 123456789

Wsysday = Sysday(lsyssec)

Print "System Day of System Second " ; Lsyssec ; " is " ; Wsysday

'System Day of System Second 123456789 is 1428"Now it's " ; Lsystemsecondselapsed ; " seconds later"

SWAP

Action

Exchange two variables of the same type.

page -685-

© MCS Electronics, 1995-2007

Syntax

SWAP var1, var2

Remarks

var1

A variable of type bit, byte, integer, word, long or string.

var2

A variable of the same type as var1.

 

 

After the swap, var1 will hold the value of var2 and var2 will hold the value of var1.

Example

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

 

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

: swap.bas

'name

'copyright

: (c) 1995-2005, MCS Electronics

'purpose

: demo: SWAP

'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 A As Byte , B1 As Byte

 

Dim Bbit1 As Bit , Bbit2 As Bit

 

Dim S1 As String * 10 , S2 As String * 10

 

S1 = "AAA" : S2 = "BBB"

 

Swap S1 , S2

 

 

A = 5 : B1 = 10

'assign some vars

Print A ; "

" ; B1

'print them

Swap A , B1

" ; B1

'swap them

Print A ; "

'print is again

Set Bbit1

Swap Bbit1 , Bbit2

Print Bbit1 ; Bbit2

End

TAN

Action

page -686-