roboforum.ru

Технический форум по робототехнике.
Текущее время: 27 ноя 2024, 04:41

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Внешние прерывания Atmega8
СообщениеДобавлено: 10 июл 2008, 17:16 
Не в сети

Зарегистрирован: 10 июл 2008, 16:14
Сообщения: 4
blindman писал(а):
Для меня новость, что sei это "фигня". Может порадовать этой новостью разработчиков контроллера? Наверно, по твоему фигня также и то, что твой код будет исполняться в 3 раза дольше? И то, что тот, кто будет потом читать твой код, должен помнить, что I это именно седьмой бит?



Фигня не по сути, а по применению. Вставка ассемблерного кода делается так: #asm("sei"), а у паренька в последнем варианте просто sei. При этом правильный варинант не компилится.
Я в своей совсем не долгой практике программирования пользовался всегда SREG |= (1 << 7). А почему он будет исполняться в три раза дольше, очень хочу узнать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Внешние прерывания Atmega8
СообщениеДобавлено: 10 июл 2008, 17:23 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
У паренька как раз все нормально. Смотрим, какой компилятор он использует, и осознаем, что в GCC фигней будет как раз #asm

Если очень хочешь узнать - скомпилируй свой код, потом его дизассемблируй. Если не знаешь как, помогу.

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Внешние прерывания Atmega8
СообщениеДобавлено: 10 июл 2008, 18:07 
Не в сети

Зарегистрирован: 10 июл 2008, 16:14
Сообщения: 4
blindman писал(а):
У паренька как раз все нормально. Смотрим, какой компилятор он использует, и осознаем, что в GCC фигней будет как раз #asm

Если очень хочешь узнать - скомпилируй свой код, потом его дизассемблируй. Если не знаешь как, помогу.


Хорошо, обращусь в личку.

При програмированнии микропроцессоров мы устанавливаем кучу битов в различных регистрах в СИшном коде.
Чтож теперь всё переводить на ассемблерные вставки?
Какой смысл писать sei(), выгадавая время, если перед этим мы устанавливаем биты таким нерациональным образом :GICR|=0x40, MCUCR=0x02,GIFR=0x40?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Внешние прерывания Atmega8
СообщениеДобавлено: 10 июл 2008, 18:39 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
В чем смысл я написал выше. И неважно, что в данном конкретном случае нам пофиг, что прерывания будут разрешены на два такта позже - нужно сразу учиться делать правильно. В данном случае использовать sei правильно во всех отношениях - короче, быстрее, читабельнее.

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO