INP

Top  Previous  Next

Action

Returns a byte read from a hardware port or any internal or external memory location.

 

 

Syntax

var = INP(address)

 

 

Remarks

var

Numeric variable that receives the value.

address

The address where to read the value from. (0- &HFFFF)

For Xmega which supports huge memory, the address is in range from 0-&HFFFFFF.

 

The PEEK() function will read only the lowest 32 memory locations (registers).

The INP() function can read from any memory location since the AVR has a linear memory model.

 

When you want to read from XRAM memory you must enable external memory access in the Compiler Chip Options.

 

 

See also

OUT , PEEK , POKE, SETREG, GETREG

 

 

Example

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

'name                     : peek.bas

'copyright                : (c) 1995-2021, MCS Electronics

'purpose                  : demonstrates PEEk, POKE, CPEEK, INP and OUT

'micro                    : Mega162

'suited for demo          : yes

'commercial addon needed  : no

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

 

$regfile = "m162def.dat"                                   ' specify the used micro

$crystal = 4000000                                         ' used crystal frequency

$baud = 19200                                               ' use baud rate

$hwstack = 32                                               ' default use 32 for the hardware stack

$swstack = 10                                               ' default use 10 for the SW stack

$framesize = 40                                             ' default use 40 for the frame space

 

Dim I As Integer , B1 As Byte

'dump internal memory

For I = 0 To 31                                             'only 32 registers in AVR

B1 = Peek(i)                                             'get byte from internal memory

Print Hex(b1) ; "  ";

'Poke I , 1                            'write a value into memory

Next

Print                                                     'new line

'be careful when writing into internal memory !!

 

'now dump a part ofthe code-memory(program)

For I = 0 To 255

B1 = Cpeek(i)                                           'get byte from internal memory

Print Hex(b1) ; "  ";

Next

'note that you can not write into codememory!!

 

Out &H8000 , 1                                             'write 1 into XRAM at address 8000

B1 = Inp(&H8000)                                           'return value from XRAM

Print B1

End