Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Как написать силами Bascom???


Как написать силами Bascom???

Сообщений 1 страница 4 из 4

1

Возник вопрос:

Как написать этот кусочек

  $asm
    push R31        ' Сохраняем используемые регистры
    In R31 , Sreg   ' Т.к. используется логическая операция "COM", сохраняем SREG
    push R31        ' Cохраняем SREG
    ldi R31 , Const_используемые_выводы_pinc       ' Забираем константу в регистр
    com R31         '  Побитная инверсия
    sts {Маска_pcint} , R31       ' Сохраняем значение регистра в переменную
    Pop R31         ' Восстанавливаем ранее сохранённый SREG
    Out Sreg , R31  ' Восстанавливаем ранее сохранённый SREG
    pop R31         ' Восстанавливаем ранее сохранённые регистры
  $end Asm

силами Bascom, т.е.,

вот это:  Const Const_используемые_выводы_pinc = &B01111100

побитно проинвертировать.

Интересует самый короткий вариант???

0

2

Почитай тут: http://avrhelp.mcselec.com/index.html?toggle.htm
Если надо коротко в тексте чтобы выглядело то просто "toggle", но он весьма тормозной в асме.
Если надо быстрее, вроде как (из хелпа), есть вариант "Var_byte = Var_byte XOR &HFF".
Надо смотреть, что генерится в асме...

0

3

RDW написал(а):

Почитай тут: http://avrhelp.mcselec.com/index.html?toggle.htm
Если надо коротко в тексте чтобы выглядело то просто "toggle", но он весьма тормозной в асме.

Не работает!!!

RDW написал(а):

Если надо быстрее, вроде как (из хелпа), есть вариант "Var_byte = Var_byte XOR &HFF".

Не устраивает, потому, что, заранее неизвестна константа, или нужно править код под конкретный случай использования PCINT.!!!

Отредактировано sasha_1973 (2014-07-21 15:12:53)

0

4

Работает, правда только с переменными (с константами не работает) следующий вариант:

 
  Маска_pcint = Not Используемые_выводы_pinc

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Как написать силами Bascom???