Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
16.10.2008, 16:57
|
|
Вид на жительство
Регистрация: 13.05.2005
Сообщений: 386
Сказал спасибо: 9
Сказали Спасибо 44 раз(а) в 37 сообщении(ях)
|
"Синтаксис" ASM-кода в программе на Си
В АСМе разбираюсь хорошо, в Сях - пока плохо. А вот как правильно писать ASM - код в Сях? Где почитать?
Интересует связка Авр-студио и вин-авр. Про то, как вставлять Асм и передавать параметры в Си прочел в доке к вин-авру, там все понятно. Непонятно как правилько писать АСМ.
Например:
void delay1(unsigned char __tt)
{
__asm__ volatile (
"1: dec %0" "
"
"brne 1b"
:
: "r" (__tt)
);
}
Где найти описание конструкций типа "
"?
и зачем в строке ветвления "brne 1b" именно "b" на конце? и т.д.
|
|
|
|
16.10.2008, 20:54
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 956 сообщении(ях)
|
|
|
|
|
16.10.2008, 23:07
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: "Синтаксис" ASM -кода в программе на Си.
[quote="chapa"
Где найти описание конструкций типа "
"?
и зачем в строке ветвления "brne 1b" именно "b" на конце? и т.д.[/quote]
это просто перевод строки + табулятор. Вещь вполне бесполезная, если не планируется изучать листинг. Так что это можно не писать вообще.
Символ после метки указывает направление - b-вверх(begin) f-вперед(forward).
|
|
|
|
17.10.2008, 13:49
|
|
Вид на жительство
Регистрация: 13.05.2005
Сообщений: 386
Сказал спасибо: 9
Сказали Спасибо 44 раз(а) в 37 сообщении(ях)
|
Всем спасибо, особенно Halex07-у, оказывается вся эта документация есть у меня на компе в вин-авре, просто не там искал. А от англиЦкого и не отвыкал. (к.ф.-м.н. [шаркнув ножкой])
|
|
|
|
22.02.2012, 10:06
|
|
Частый гость
Регистрация: 20.02.2012
Сообщений: 30
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: "Синтаксис" ASM -кода в программе на Си.
здравствуй те уважаемые форумчане!
Перехожу на Си, ничего не понимаю, поэтому не судите строго
задача: по приходу данных по UART генерируется прерывание по "завершению приема" и загорается светодиод. В симуляции прерывание происходит а то что внутри {} игнорируется, в чем можетбыть причина?
ISR ( USART_RX_vect )
{
switch(UDR)
{
LED_PORT &= ~ (1‹‹LED2);break;
}
}
|
|
|
|
22.02.2012, 10:32
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.08.2008
Адрес: Ярославль
Сообщений: 1,505
Сказал спасибо: 115
Сказали Спасибо 1,314 раз(а) в 548 сообщении(ях)
|
Re: "Синтаксис" ASM -кода в программе на Си.
синтаксис оператора switch
switch (...)
{
case ... : ......; break;
case ... : ......; break;
case ... : ......; break;
case ... : ......; break;
default : .......;
}
http://citforum.ru/programming/c/h14.shtml#145
Только не пойму, зачем в Вашей программе switch.
Если нужно проверить состояние UDR, а потом выполнить действие, используйте if.
Последний раз редактировалось olc0267; 22.02.2012 в 10:38.
|
|
|
Сказали "Спасибо" olc0267
|
|
|
22.02.2012, 10:40
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: "Синтаксис" ASM -кода в программе на Си.
Сообщение от slavik.ksu
|
здравствуй те уважаемые форумчане!
Перехожу на Си, ничего не понимаю, поэтому не судите строго
задача: по приходу данных по UART генерируется прерывание по "завершению приема" и загорается светодиод. В симуляции прерывание происходит а то что внутри {} игнорируется, в чем можетбыть причина?
ISR ( USART_RX_vect )
{
switch(UDR)
{
LED_PORT &= ~ (1‹‹LED2);break;
}
}
|
http://www.opennet.ru/docs/RUS/ansi-c/ansi-c-6.html
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
22.02.2012, 10:43
|
|
Частый гость
Регистрация: 20.02.2012
Сообщений: 30
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: "Синтаксис" ASM -кода в программе на Си.
Оказывается в этой конструкции switch строка выполняется только после меток case или default !
|
|
|
|
22.02.2012, 22:56
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: "Синтаксис" ASM -кода в программе на Си.
Сообщение от slavik.ksu
|
Оказывается в этой конструкции switch строка выполняется только после меток case или default !
|
А вы не пробовали в строке поиска Гугла набрать волшебные слова: "c cwitch operator"? На диво много прочитаете. И так по каждому оператору.
Есть еще слова: "керниган ричи" - тоже много интересного...
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
23.02.2012, 03:10
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Re: "Синтаксис" ASM -кода в программе на Си.
Сообщение от slavik.ksu
|
Оказывается в этой конструкции switch строка выполняется только после меток case или default !
|
О сколь нам открытий чудных, готовит просвещенья дух... И опыт, сын ошибок трудных...
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:06.
|
|