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

 
 
> Keil + Ассемблер, Как сделать ассемблерную вставку в С-файле?
whiteTigr
сообщение Aug 4 2011, 08:02
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 25-07-11
Пользователь №: 66 407



Собственно, топик.

Для организации задержек в некоторых процедурах записи хотелось бы использовать несколько Nop'ов или простенький цикл, в котором точно известно количество тактов.
Проблема в том, что компилятор при разных настройках оптимизации по разному делает циклы, написаные на С, и задержки получаются разными, и поэтому не хотелось бы полагаться на этот вариант.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Палыч
сообщение Aug 4 2011, 08:47
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Вы бы, что ли, указали тип МК...

Если считать, что Вы используете МК51, то
1. Если необходимо вставить 1-2 пустых оператора, то: _nop_() (см. файл intrins.h)
2. При больших задержках - использовать таймер или, может быть, имеет смысл написать функцию на ассемблере с передачей ей параметра задержки. См. "Cx51 User's Guide" -> "Advanced Programming" -> "Interfacing C to Assembler"
Go to the top of the page
 
+Quote Post
whiteTigr
сообщение Aug 4 2011, 09:42
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 25-07-11
Пользователь №: 66 407



Цитата(Палыч @ Aug 4 2011, 12:47) *
Вы бы, что ли, указали тип МК...

Если считать, что Вы используете МК51, то
1. Если необходимо вставить 1-2 пустых оператора, то: _nop_() (см. файл intrins.h)


Совсем забыл. Програмирую чип lpc2367.

Спасибо за ответ, покопал немножко и нашелся __nop(); sm.gif
Go to the top of the page
 
+Quote Post



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

 


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


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