LINUX.ORG.RU

Atmega8 command in

 ,


0

1

Терзают смутные сомнения

in r18, 0x04
in r19, 0x05

Command in reads port. А так как я написал можно? Компилятор ошибок не выдает. Симулировать не на чем в данный момент.



Последнее исправление: saufesma (всего исправлений: 1)

А что сделать то, какие конкретно порты читать? Может эти номера портов не соответствуют тому, что ты хочешь прочитать, мы же не знаем

James_Holden ★★★★★
()

All ATmega8 I/Os and peripherals are placed in the I/O space. The I/O locations are accessed by the IN and OUT instructions, transferring data between the 32 general pur- pose working registers and the I/O space. I/O Registers within the address range 0x00 - 0x1F are directly bit-accessible using the SBI and CBI instructions. In these registers, the value of single bits can be checked by using the SBIS and SBIC instructions. Refer to the instruction set section for more details. When using the I/O specific commands IN and OUT, the I/O addresses 0x00 - 0x3F must be used. When addressing I/O Registers as data space using LD and ST instructions, 0x20 must be added to these addresses.

For compatibility with future devices, reserved bits should be written to zero if accessed. Reserved I/O memory addresses should never be written.

Some of the Status Flags are cleared by writing a logical one to them. Note that the CBI and SBI instructions will operate on all bits in the I/O Register, writing a one back into any flag read as set, thus clearing the flag. The CBI and SBI instructions work with reg- isters 0x00 to 0x1F only.

The I/O and peripherals control registers are explained in later sections.

Нашёл в https://www.romstore.ru/system/storage/download/ATmega8.pdf на стр. 22

annulen ★★★★★
()

Компилятор ошибок не выдает.

Ещё бы компилятор стал ошибки в асме искать. Вот если ассемблер ошибок не выдает — значит, формат инструкций правильный и названные регистры существуют

annulen ★★★★★
()