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

 
 
5 страниц V  « < 3 4 5  
Reply to this topicStart new topic
> Прибавить константу к регистру!
Rst7
сообщение Mar 12 2008, 08:37
Сообщение #61


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

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



Да сам вопрос то был

Цитата
где же addi, adci?


Вот плавно обсуждение и перетекло в обсуждение "где система команд красивее".

Лично я бы резюмировал так - из ситуации отсутствия какой либо команды проца можно выйти. Вопрос только в том - сколько такой выход будет стоить - причем в общем - и затраты программера, и стоимость камня и прочее, прочее, прочее...


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
777777
сообщение Mar 19 2008, 06:34
Сообщение #62


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

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



А где же "исключающее ИЛИ" с константой?!
Как инвертировать один бит в регистре (порту)? Сделали две по сути одинаковые команды - andi и cbr, а eori не стали?

Цитата(Rst7 @ Mar 12 2008, 11:37) *
Лично я бы резюмировал так - из ситуации отсутствия какой либо команды проца можно выйти. Вопрос только в том - сколько такой выход будет стоить


Стоить он будет довольно много: нужно занести константу в другой регистр, перед этим сохранить его в стеке (поскльку это происходит в прерывании), выполнить eor, и восстановить регистр. Или есть более простой способ?
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Mar 19 2008, 08:45
Сообщение #63


Шаман
******

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



Цитата(777777 @ Mar 19 2008, 08:34) *
А где же "исключающее ИЛИ" с константой?!

Там же, где и ещё полсотни или больше команд, не вошедших в понятие RISC для 8-битников.
Если команды нет, то от Вашего праведного гнева она не возникнет. Или какой ответ Вы предполагали своим вопросом? Вам помогут её найти?
Цитата(777777 @ Mar 19 2008, 08:34) *
Сделали две по сути одинаковые команды - andi и cbr

Это две мнемоники одного и того же кода, сделанные не более чем для удобства.

Если отсутствие нужных Вам команд или неприемлемость обходных манёвров окажутся для Вас существенными, возьмите другой МК.
Go to the top of the page
 
+Quote Post
777777
сообщение Mar 19 2008, 09:57
Сообщение #64


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

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(IgorKossak @ Mar 19 2008, 11:45) *
Или какой ответ Вы предполагали своим вопросом? Вам помогут её найти?


Ну, в общем, да. Я надеялся, что в атмеле таки есть быстрый способ инвертировать бит в порту, который я по своей неопытности не доглядел.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Mar 19 2008, 10:13
Сообщение #65


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

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



Цитата
Ну, в общем, да. Я надеялся, что в атмеле таки есть быстрый способ инвертировать бит в порту, который я по своей неопытности не доглядел.


Именно бит в порту инвертировать - способ есть например для Mega48-88-168 - сделать OUT PINx,Ry, причем Ry должно содержать маску инвертируемых битов - биты в Ry, которые равны 1, будут инвертированы.


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


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

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(Rst7 @ Mar 19 2008, 13:13) *
Именно бит в порту инвертировать - способ есть например для Mega48-88-168 - сделать OUT PINx,Ry, причем Ry должно содержать маску инвертируемых битов - биты в Ry, которые равны 1, будут инвертированы.


Не понял. Как можно делать OUT в PINx и почему они должны при этом инвертироваться? Или это фича именно 48/88/168?
Go to the top of the page
 
+Quote Post
Дон Амброзио
сообщение Mar 19 2008, 10:26
Сообщение #67


Местный
***

Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947



Цитата(777777 @ Mar 19 2008, 13:19) *
Не понял. Как можно делать OUT в PINx и почему они должны при этом инвертироваться? Или это фича именно 48/88/168?

Я тоже не понял... Я знаю что таким образом сбрасываются некоторые флаги запросов на прерывание в регистрах статуса периферии. И то они инвертируются только в одну сторону. Т.е. инвертнуть с "1" на "0" можно, а обратно - нельзя...А вот то, что таким образом можно инвертнуть биты в регистрах PortX - впервые слышу

Сообщение отредактировал Дон Амброзио - Mar 19 2008, 10:28


--------------------
После устранения бага в программе она стала работать....хуже
Go to the top of the page
 
+Quote Post
Rst7
сообщение Mar 19 2008, 10:30
Сообщение #68


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

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



Цитата
А вот то, что таким образом можно инвертнуть биты в регистрах PortX - впервые слышу


Так учите матчасть smile.gif Но, вообще-то, не так давно появилась эта фича.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Дон Амброзио
сообщение Mar 19 2008, 10:39
Сообщение #69


Местный
***

Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947



Цитата(Rst7 @ Mar 19 2008, 13:30) *
Так учите матчасть smile.gif Но, вообще-то, не так давно появилась эта фича.

Начиная с каких моделей?


--------------------
После устранения бага в программе она стала работать....хуже
Go to the top of the page
 
+Quote Post
KRS
сообщение Mar 19 2008, 10:47
Сообщение #70


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

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



Цитата(Rst7 @ Mar 19 2008, 13:30) *
Так учите матчасть smile.gif Но, вообще-то, не так давно появилась эта фича.

Действительно появилась, а я и не знал smile.gif
Главное нигде на это внимание не акцентируется, я так внимательно и не читал даташит на новые контроллеры в этом разделе
Да и фича то давно появилась даже у CAN128 есть.

Сообщение отредактировал KRS - Mar 19 2008, 10:54
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Mar 19 2008, 12:38
Сообщение #71


Шаман
******

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



Цитата(Дон Амброзио @ Mar 19 2008, 12:39) *
Начиная с каких моделей?

Цитата(KRS @ Mar 19 2008, 12:47) *
Действительно появилась, а я и не знал smile.gif
Главное нигде на это внимание не акцентируется, я так внимательно и не читал даташит на новые контроллеры в этом разделе
Да и фича то давно появилась даже у CAN128 есть.

Вопрос, когда появилась та или иная фича, скорее всего риторический.
Более интересный вопрос это в каких моделях эта фича вообще есть, но для этого придётся перелопатить документацию на каждый МК.
И ещё, отсутствие явных указаний на принципиальные отличия от ранних моделей в начале документа, а не на 78-й странице, это явное упущение производителя. И в подобных случаях сказывается инерция мышления разработчика, не перечитывать повторно то, что уже было когда-то прочитано. Хотя и это моё мнение тоже из области риторики.
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Mar 20 2008, 18:13
Сообщение #72


За битами по регистрам гоняюсь
***

Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446



Эта фича ещё есть у Tiny2313. Найти модели, в которых она есть, довольно просто. Поищите в DS слово "toggle". В разделах про порты сразу находится (если фича там есть). Ещё на схеме портов есть блок, отвечающий за это.


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
=GM=
сообщение Mar 20 2008, 21:59
Сообщение #73


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Nanobyte @ Mar 20 2008, 18:13) *
В разделах про порты сразу находится (если фича там есть)

Добавлю ссылку для полноты картины. Обсуждение инверсии ножек было здесь.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Mar 21 2008, 06:46
Сообщение #74


Шаман
******

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



Цитата(Nanobyte @ Mar 20 2008, 20:13) *
Эта фича ещё есть у Tiny2313. Найти модели, в которых она есть, довольно просто. Поищите в DS слово "toggle". В разделах про порты сразу находится (если фича там есть). Ещё на схеме портов есть блок, отвечающий за это.

В том то и дело, что перед этим придётся загрузить описания на все МК (если стоит задача выбрать МК с этой фичей), причем не Summary, а полные. Проверил в случае с Mega48/88/168.
Go to the top of the page
 
+Quote Post

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

 


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


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