реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> T бит в SREGе, Зачем?
muravei
сообщение Mar 27 2006, 10:40
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Подскажите(с примером) как можно использовать T бит в SREGе, а то вдруг мне это надо , а я не знаю sad.gif
Go to the top of the page
 
+Quote Post
KRS
сообщение Mar 27 2006, 10:43
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



для хранения 1 бита
есть команды установки, сброса, условного перехода
и запсиь и сохранение в любой бит любго регистра
Go to the top of the page
 
+Quote Post
muravei
сообщение Mar 27 2006, 10:47
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Просто любого от фонаря, по моему хотению, и никто на него не позариться?smile.gif
Go to the top of the page
 
+Quote Post
m16
сообщение Mar 27 2006, 10:55
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 242
Регистрация: 27-01-05
Пользователь №: 2 225



я его иногда пользую в качестве семафора
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Mar 27 2006, 11:58
Сообщение #5


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(muravei @ Mar 27 2006, 13:47) *
Просто любого от фонаря, по моему хотению, и никто на него не позариться?smile.gif

Компилятор от IAR иногда использует его для своих нужд при работе с булевыми переменными.
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 27 2006, 14:50
Сообщение #6


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Есть команда (bst) загрузки любого бита любого регистра во флаг T, и команда(bld) выгрузки флага T в любой бит любого регистра, а также есть команды(brts/brtc) перехода по значению флага T.

Т.о. этот флаг упрощает работу там где требуется манипуляция с битами.

Пример:
Пусть имеется какой-то регистр в котором хряняться какие-то флаги, которые предполагается использовать в программе.

Код
.def AL = r24
.def AH = r25
.def Flags = R15 ; Пользовательский регистр флагов
.equ Flag0 = 0  
.equ Flag1 = 1
.equ Flag2 = 2
.equ Flag3 = 3
...
.equ Flag7 = 7

прочитать порт B и поместить значение пина PB5 во флаг Flag0:

  in  AL, PinB
  bst AL, PB5
  bld  Flags, Flag0

проверить Flag4 и если он установлен перейти на подпрограмму Proc1

  bst  Flags, Flag4
  brts Proc1
  ...
Proc1:


Сообщение отредактировал defunct - Mar 27 2006, 14:56
Go to the top of the page
 
+Quote Post
muravei
сообщение Apr 28 2006, 06:18
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Попытался использовать практически,но:
в обработке прерывания сохраняю SREG в стеке, далее устанавливаю бит Т , по выходу восстанавливаю SREG и все бит тю-тю.
Что делать ? Может использовать, как и прежде, рабочий р-р?
Go to the top of the page
 
+Quote Post
KRS
сообщение Apr 28 2006, 07:23
Сообщение #8


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(muravei @ Apr 28 2006, 10:18) *
Попытался использовать практически,но:
в обработке прерывания сохраняю SREG в стеке, далее устанавливаю бит Т , по выходу восстанавливаю SREG и все бит тю-тю.
Что делать ? Может использовать, как и прежде, рабочий р-р?

Из прерываний так не получится флаг сбросить/установить

надо действительно или регистр зарезервировать (IAR позволяет)
или в новых мегах есть GPIOR0 он доступен для команд SBI CBI SBIS SBIC

Еще можно некоторые биты в портах использовать если нога используется переферией или свободна.
Я например в проектах где используется шина данных и PORTA полностью занят шиной, использую его как 8 битовых флагов, прекрасно работает.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Apr 28 2006, 08:31
Сообщение #9


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата(KRS @ Apr 28 2006, 10:23) *
Я например в проектах где используется шина данных и PORTA полностью занят шиной, использую его как 8 битовых флагов, прекрасно работает.


О, толково... Спасибо за подсказку. Я обычно биты управления прерыванием (фронт/спад) аналогового компаратора пользовал wink.gif, порт под шиной - побольше размером.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Igor26
сообщение Apr 28 2006, 08:59
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Цитата(KRS @ Apr 28 2006, 11:23) *
Цитата(muravei @ Apr 28 2006, 10:18) *

Попытался использовать практически,но:
в обработке прерывания сохраняю SREG в стеке, далее устанавливаю бит Т , по выходу восстанавливаю SREG и все бит тю-тю.
Что делать ? Может использовать, как и прежде, рабочий р-р?

Из прерываний так не получится флаг сбросить/установить

надо действительно или регистр зарезервировать (IAR позволяет)
или в новых мегах есть GPIOR0 он доступен для команд SBI CBI SBIS SBIC

Еще можно некоторые биты в портах использовать если нога используется переферией или свободна.
Я например в проектах где используется шина данных и PORTA полностью занят шиной, использую его как 8 битовых флагов, прекрасно работает.

Не совсем понял. А как же работа с шиной данных/адреса?
Go to the top of the page
 
+Quote Post
KRS
сообщение Apr 28 2006, 09:51
Сообщение #11


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Igor26 @ Apr 28 2006, 12:59) *
Не совсем понял. А как же работа с шиной данных/адреса?


Так при использовании External Memory управление ногами отключатся от регистра PORTA и его, как оказывается, можно совбодно использовать.
ну еще и часть PORTC можно использовать, в зависимости от того сколько бит адреса используется.
Go to the top of the page
 
+Quote Post
Igor26
сообщение Apr 28 2006, 10:30
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Цитата(KRS @ Apr 28 2006, 13:51) *
Цитата(Igor26 @ Apr 28 2006, 12:59) *

Не совсем понял. А как же работа с шиной данных/адреса?


Так при использовании External Memory управление ногами отключатся от регистра PORTA и его, как оказывается, можно совбодно использовать.
ну еще и часть PORTC можно использовать, в зависимости от того сколько бит адреса используется.

Теперь понял. Оригинально.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 12:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01475 секунд с 7
ELECTRONIX ©2004-2016