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

 
 
> Сдвиг в бит С
*Roma*
сообщение Jul 22 2005, 08:50
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 17-06-05
Пользователь №: 6 089



Ктонибудь когда нибудь организовывал на С на AVR асемблерную операцию сдвига в бит C (Cerry) и возможно ли это вообще на С ???
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
VladislavS
сообщение Jul 22 2005, 14:18
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140



Цитата(*Roma* @ Jul 22 2005, 11:50)
Ктонибудь когда нибудь организовывал на С на AVR асемблерную операцию сдвига в бит C (Cerry) и возможно ли это вообще на С ???
*


А какой в этом тайный смысл, если не секрет. Просто пиши на С, а с регистрами, битами, стеками это уже дело компилятора возиться. Сколько пишу для AVR и ARM на С/С++ ни разу не было желания в Cerry что-то задвигать.
Go to the top of the page
 
+Quote Post
*Roma*
сообщение Jul 23 2005, 07:49
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 17-06-05
Пользователь №: 6 089



А какой в этом тайный смысл, если не секрет. Просто пиши на С, а с регистрами, битами, стеками это уже дело компилятора возиться. Сколько пишу для AVR и ARM на С/С++ ни разу не было желания в Cerry что-то задвигать.
*

[/quote]

Тайный смыс вот какой - в своей проге я создаю регистр флагов (обычно R15) сканировать его можна 2-мя способами:
1)
for(;;)
{
unsigned char buff=reg_flag;
if ((buff & 0x01) == 0x01){time();}
if ((buff & 0x02) == 0x02){indi ();}
if ((buff & 0x04) == 0x04){klava ();}
if ((buff & 0x08) == 0x08){break ;}
}

2)
for(;;)
{void (* Pfunk[3])()={minute,save,analiz_ADC};
unsigned char buff=reg_flag;
unsigned char count=2;
for(;;)
{
if ((buff&0x01)==0x01) {(* Pfunk[count])();}
buff>>=1;
count--;
if ((SREG&0x04)==0x04){break;}//if negative flag=1
}
}
прои большом количестве функций, которые необходимо адресовать при помощи регистра флагов способ 2 даёт меньший обьём кода в асме, просто хочу его не многа изменить.
Go to the top of the page
 
+Quote Post



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

 


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


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