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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> General Purpose I/O Register
ILYAUL
сообщение Oct 28 2011, 11:39
Сообщение #1


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Всем , привет!

Кто нибудь , когда нибудь использовал эти регистры. В DS инфы по ним 0 (нуль). Отличненькое местечко , что бы хранить SREG ( вместо SAVESREG ) + SPH+SPL для много задачных программ. Но как то стрёмно , не понимая на ... они нужны. Для тех , кто срочно начнёт искать их в своих процах , учтите , что они есть не везде. Что тоже настораживает.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
МП41
сообщение Oct 28 2011, 12:27
Сообщение #2


4 синих кубика
****

Группа: Участник
Сообщений: 526
Регистрация: 19-09-08
Из: полупроводника, металла и стекла
Пользователь №: 40 326



Я использую один из них для хранения результатов различных тестов. В ИАРе объявляю так:
Код
#pragma location=0x33// (GPIOR0);
__no_init char errors;

Компилятор при работе с битами этого регистра использует команды sbi, cbi.


--------------------
p-n-p-p-n-p-n-n-p-n-p структура однако очень эффективна
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Oct 28 2011, 12:33
Сообщение #3


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



QUOTE (МП41 @ Oct 28 2011, 16:27) *
Я использую один из них для хранения результатов различных тестов. В ИАРе объявляю так:
CODE
#pragma location=0x33// (GPIOR0);
__no_init char errors;

Компилятор при работе с битами этого регистра использует команды sbi, cbi.


Ну раз они в области ввода\вывода , то по идее , на них распростроняются все команды относящиеся к этому пространству памяти. OUT IN SBIS SBIC и выше перечисленные.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
МП41
сообщение Oct 28 2011, 12:40
Сообщение #4


4 синих кубика
****

Группа: Участник
Сообщений: 526
Регистрация: 19-09-08
Из: полупроводника, металла и стекла
Пользователь №: 40 326



Цитата(ILYAUL @ Oct 28 2011, 15:33) *
Ну раз они в области ввода\вывода , то по идее , на них распростроняются все команды относящиеся к этому пространству памяти. OUT IN SBIS SBIC и выше перечисленные.

Речь о том, что компилятор "сообразил" и сделал как надо, хотя мог и через st, ld сделать обращение ради изменения одного бита.


--------------------
p-n-p-p-n-p-n-n-p-n-p структура однако очень эффективна
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Oct 29 2011, 12:37
Сообщение #5


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Замечательно работает , и не надо помнить последовательность загрузки регистров , главное не перепутать какой куда. Хорошо избавляют от push ,когда надо не много затолкнуть.
QUOTE (МП41 @ Oct 28 2011, 16:40) *
Речь о том, что компилятор "сообразил" и сделал как надо, хотя мог и через st, ld сделать обращение ради изменения одного бита.


Хвала разработчикам компилятора! Аминь..


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
zombi
сообщение Jan 25 2012, 18:23
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(ILYAUL @ Oct 29 2011, 15:37) *
Замечательно работает , и не надо помнить последовательность загрузки регистров , главное не перепутать какой куда. Хорошо избавляют от push ,когда надо не много затолкнуть.


Вот и я добрался до GPIORn.
И вот какой возник вопрос:
Сколько тактов мк экономится при замене одного PUSH и одного POP на OUT и IN соответсвенно при условии что стек находится во внутренней RAM хмеги?
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Jan 25 2012, 19:09
Сообщение #7


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(zombi @ Jan 25 2012, 22:23) *
Вот и я добрался до GPIORn.
И вот какой возник вопрос:
Сколько тактов мк экономится при замене одного PUSH и одного POP на OUT и IN соответсвенно при условии что стек находится во внутренней RAM хмеги?

PUSH , POP 2такта

IN , OUT - 1 такт


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Jan 25 2012, 19:37
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(ILYAUL @ Jan 25 2012, 21:09) *
PUSH , POP 2такта

IN , OUT - 1 такт


ST -Y,Rx
LD Rx,Y+
Тоже по два такта?
Go to the top of the page
 
+Quote Post
zombi
сообщение Jan 25 2012, 19:48
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(ILYAUL @ Jan 25 2012, 22:09) *
PUSH , POP 2такта

IN , OUT - 1 такт

Получается экономим всего 1 такт sad.gif

Цитата(_Артём_ @ Jan 25 2012, 22:37) *
ST -Y,Rx
LD Rx,Y+
Тоже по два такта?

Тоже хотел этот вопрос поднять.
Всё сложнее и сложнее становиться в мк такты считать! в мегах по проще было.

И еще: добавили GPIOR с возможностью побитового доступа но в тоже время добавили такт к SBIC,SBIS biggrin.gif
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Jan 25 2012, 20:20
Сообщение #10


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(zombi @ Jan 25 2012, 23:48) *
Получается экономим всего 1 такт sad.gif


Посчитайте сколько у Вас General Purpose регистров на столько тактов и экономите. Не забудьте умножить на два
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
zombi
сообщение Jan 25 2012, 20:24
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(ILYAUL @ Jan 25 2012, 23:20) *
Посчитайте сколько у Вас General Purpose регистров на столько тактов и экономите. Не забудьте умножить на два

Максимум 16 тактов можем выиграть. Почему на два множить!?
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Jan 26 2012, 19:14
Сообщение #12


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(zombi @ Jan 26 2012, 00:24) *
Максимум 16 тактов можем выиграть. Почему на два множить!?

На каждом push - один такт и на каждом pop - ещё один такт


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
zombi
сообщение Jan 26 2012, 22:01
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(ILYAUL @ Jan 26 2012, 22:14) *
На каждом push - один такт и на каждом pop - ещё один такт

PUSH=1t / POP=2t
Go to the top of the page
 
+Quote Post
sKWO
сообщение Jan 27 2012, 19:19
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Цитата(ILYAUL @ Oct 28 2011, 14:39) *
Кто нибудь , когда нибудь использовал эти регистры. В DS инфы по ним 0 (нуль).

В зависимости от компилятора.
ИАР ДЖПИОР регистры не исспользует на своё предусмотрение, кодэвижн вроди бы размещает в них битовые переменные.


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jan 27 2012, 19:40
Сообщение #15


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(zombi @ Jan 27 2012, 02:01) *
PUSH=1t / POP=2t

И откуда такая чудесная растактовка для PUSH ?
Go to the top of the page
 
+Quote Post

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

 


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


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