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

© MCS Electronics, 1995-2007

RC6SEND

Action

Sends RC6 remote code.

Syntax

RC6SEND togglebit, address, command

Uses

TIMER1

Remarks

Togglebit

Make the toggle bit 0 or 1 to set the toggle bit

Address

The RC6 address

Command

The RC6 command.

 

 

The resistor must be connected to the OC1A pin. In the example a 2313 micro was used. This micro has pin portB.3 connected to OC1A.

Look in a datasheet for the proper pin when used with a different chip.

Most audio and video systems are equipped with an infrared remote control. The RC6 code is a 16-bit word bi-phase coded signal.

The header is 20 bits long including the toggle bits.

Eight system bits hold the system address so that only the right systemresponds to the code.

Usually, TV sets have the system address 0, VCRs the address 5 and so on. The command sequence is eight bits long, allowing up to 256 different commands per address.

The bits are transmitted in bi-phase code (also known as Manchester code).

An IR booster circuit is shown below:

Device

Address

TV

0

VCR

5

page -604-

© MCS Electronics, 1995-2007

SAT

 

8

 

 

 

DVD

 

4

 

 

 

This is not a complete list.

 

 

 

 

 

 

 

 

Command

Value

Command

Value

Key 0

0

 

Balance right

26

Key 1

1

 

Balance left

27

Key 2-9

2-9

Channel search+

30

Previous program

10

Channel search -

31

Standby

12

Next

32

Mute/demute

13

Previous

33

Personal preference

14

External 1

56

Display

15

External 2

57

Volume up

16

TXT submode

60

Volume down

17

Standby

61

Brightness up

18

Menu on

84

Brightness down

19

Menu off

85

Saturation up

20

Help

129

Saturation down

21

Zoom -

246

Bass up

22

Zoom +

247

Bass down

23

 

 

 

Treble up

24

 

 

 

Treble down

25

 

 

 

This list is by far not complete.

Since there is little info about RC6 on the net available, use code at your own risk!

See also

CONFIG RC5 , GETRC5 , RC5SEND

Example

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

 

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

: sendrc6.bas

'name

'copyright

: (c) 1995-2005, MCS Electronics

'purpose

: code based on application note from Ger Langezaal

'micro

: AT90S2313

'suited for demo

: yes

'commercial addon needed

: no

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

 

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

 

$regfile = "2313def.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

 

 

page -605-

 

© MCS Electronics, 1995-2007

$framesize = 40

' default use 40

for the frame space

 

'+5V <---[A Led K]---[220 Ohm]---> Pb.3 for 2313.

'RC6SEND is using TIMER1, no interrupts are used

'The resistor must be connected to the OC1(A) pin , in this case PB.3

Dim Togbit As Byte , Command As Byte , Address As Byte

'this controls the TV but you could use rc6send to make your DVD region free as well :-)

'Just search the net for the codes you need to send. Do not ask me for info

please.

32

' channel next

Command =

Togbit = 0

' make it 0 or 32

to set the toggle bit

 

Address =

0

 

Do

500

 

Waitms

 

Rc6send Togbit , Address , Command

Loop

End

READ

Action

Reads those values and assigns them to variables.

Syntax

READ var

Remarks

Var

Variable that is assigned data value.

 

 

It is best to place the DATA lines at the end of your program.

It is important that the variable is of the same type as the stored data.

See also

DATA , RESTORE

Example

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

 

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

: readdata.bas

'name

'copyright

: (c) 1995-2005, MCS Electronics

'purpose

: demo : READ,RESTORE

'micro

: Mega48

'suited for demo

: yes

'commercial addon needed

: no

page -606-

 

© MCS Electronics, 1995-2007

 

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

 

 

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

 

 

$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 Integer , B1 As Byte , Count As Byte

 

Dim S As String * 15

 

 

Dim L As Long

 

'point to stored

Restore Dta1

 

data

 

'for number of

For Count = 1 To 3

 

data items

" ; B1

 

Read B1 : Print Count ; "

 

Next

 

 

Restore Dta2

 

'point to stored

data

 

'for number of

For Count = 1 To 2

 

data items

" ; A

 

Read A : Print Count ; "

 

Next

 

 

Restore Dta3

 

 

Read S : Print S

 

 

Read S : Print S

 

 

Restore Dta4

 

'long type

Read L : Print L

 

'demonstration of readlabel

 

' location is used

Dim W As Iram Word At 8 Overlay

by restore pointer

 

 

'note that W does not use any RAM it is an overlayed pointer to the data

pointer

 

' loadlabel

W = Loadlabel(dta1)

 

expects the labelname

 

 

Read B1

 

 

Print B1

 

 

End

Dta1:

Data &B10 , &HFF , 10

Dta2:

Data 1000% , -1%

Dta3:

Data "Hello" , "World"

'Note that integer values (>255 or <0) must end with the %-sign 'also note that the data type must match the variable type that is 'used for the READ statement

page -607-