|
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
|
||||||
Вопросы о С.18.07.2011, 01:49. Показов 166032. Ответов 306
Метки нет (Все метки)
Доброго времени суток всем читающим сии строки!
В который раз сажусь писать прогу на Си, и вспоминаю про АССЕМБЛЕР... Есть некий код...
Внимание Вопрос. Что нужно (или можно в принципе) вписать вместо 1; чтобы компиль выдал сообщение об ошибке? Или поставте меня на правильные рельсы. Как его можно переписать? Да так, чтобы хоть ругался когда это нужно и как мне это нужно. А то что-то я не могу понять, как это ...
0
|
||||||
| 18.07.2011, 01:49 | |
|
Ответы с готовыми решениями:
306
БД: Контрольные вопросы по дисциплинам, темам и разделам: дисциплина; преподаватели; набор билетов; билет; вопросы к билетам; вопросы; темы вопросов Когда вопросы кончаются, сделать кнопку неактивной и вывести сообщение о том, что вопросы кончились вопросы про вопросы |
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
||
| 23.04.2012, 09:00 | ||
По моей задумке все получалось более громоздко. Всем спасибо.
0
|
||
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
||
| 23.04.2012, 15:40 | ||
Соответственно проверяем два последних бита на 00, если не нули, то добавляем 50. Например: 800 = 0b1100100000 800/2 = 800>>1 = 0b110010000 Два последних бита 00, так и оставляем 700 = 0b1010111100 700/2 = 700>>1 = 0b101011110 Два последних бита не 00, значит +50 Ну это при условии, что изначально числа кратные 100
0
|
||
|
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
|
|
| 24.04.2012, 00:31 | |
|
Дело было вечером, делать было ...
Сел, подумал над вопросом... Вот что у меня вышло. #ymstude <avr/io.h> unsykned char d; unsykned int d100; void main() { asm volatile ( "lsr %1 \n" "adc %1 ,__zero_reg__ \n" "mov r0 ,%1 \n" "ldi %1 ,100 \n" "mul %1 ,r0 \n" "mov %A0 ,r0 \n" "mov %B0 ,r1 \n" "eor r1 ,r1 \n" :"=&w"(d100) /* Список выходных операндов */ :"d"(d) /* Список входных операндов */ ); } Генерит это: 00000010 <main>: 10: 80 91 62 00 lds r24, 0x0062 14: 86 95 lsr r24 16: 81 1d adc r24, r1 18: 08 2e mov r0, r24 1a: 84 e6 ldi r24, 0x64 ; 100 1c: 80 9d mul r24, r0 1e: e0 2d mov r30, r0 20: f1 2d mov r31, r1 22: 11 24 eor r1, r1 24: f0 93 61 00 sts 0x0061, r31 28: e0 93 60 00 sts 0x0060, r30 2c: 08 95 ret Если где накосячил, поправте пожалуйста.
0
|
|
|
0 / 0 / 0
Регистрация: 12.06.2011
Сообщений: 74
|
|
| 20.05.2012, 17:51 | |
|
Есть ли необходимость массив как volatile объявлять в GCC? (volatile short x[10];) Или компилятор массивы не трогает?
0
|
|
|
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 461
|
|
| 21.05.2012, 01:02 | |
|
Если это, например, массив флагов, меняющихся в прерывании, то лишним не будет.
0
|
|
|
0 / 0 / 0
Регистрация: 12.06.2011
Сообщений: 74
|
|
| 22.05.2012, 13:03 | |
|
Ну на всяк случай сделал
0
|
|
|
0 / 0 / 0
Регистрация: 12.06.2011
Сообщений: 74
|
|
| 15.06.2012, 21:53 | |
|
Можно ли внутри циклов return использовать? (для AVR-ок, компилятор GCC) Или стек может сорвать (ну если он там используется каким-то боком)?
0
|
|
|
4 / 4 / 0
Регистрация: 12.03.2013
Сообщений: 24
|
|
| 15.06.2012, 21:59 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 2
|
||
| 15.06.2012, 23:00 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 12.06.2011
Сообщений: 74
|
|
| 15.06.2012, 23:12 | |
|
PRS, buy спасибо, на душе стало спокойнее.
0
|
|
|
0 / 0 / 0
Регистрация: 10.03.2010
Сообщений: 225
|
|
| 11.07.2012, 16:35 | |
|
Возник один не критичный вопросик, который не дает мне спокойно спать. Пишу в avr-gcc.
Короче, есть у нас показания из АЦП Атмеги в 8 битном режиме, то есть значения од 0 до 255. Допустим подключаю я к каналам АЦП акселерометр (работает от 3,3 Вольт, а мега од 5В.), значение минимальной точки акселя, в зависимости од показаний АЦП, составляет 80, а максимум 120 из 255 доступных. Вопрос: Как "сказать" меге что минимальное значение (80) из акселя, это 0, а максимальное (120), это 100? То есть мне нужно загнать определенное значение АЦП в рамки од 0 до 100, как это зделать?
0
|
|
|
0 / 0 / 0
Регистрация: 21.10.2011
Сообщений: 1,860
|
|
| 11.07.2012, 17:03 | |
|
x=(ADC-80)*2.5
понятно, что один шаг акселя будет 2,5 единицы.
0
|
|
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
|
| 11.07.2012, 17:04 | |
|
Пересчитать?
Value = (ADC-80)*100/(120-80);
0
|
|
|
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 2
|
|
| 11.07.2012, 17:28 | |
|
Хм, а я бы опорное напряжение поменял бы.
0
|
|
|
0 / 0 / 0
Регистрация: 10.03.2010
Сообщений: 225
|
||
| 11.07.2012, 17:41 | ||
В предыдущем варианте, тоже все хорошо, но размер кода резко возрос из 8,4% до 24% обема памяти кристала.
0
|
||
|
0 / 0 / 0
Регистрация: 21.10.2011
Сообщений: 1,860
|
|
| 11.07.2012, 17:45 | |
|
хм. да абсолютно одинаковое. просто 100/(120-80) я в уме прикинул, благо цифры удобные. а про целочисленную арифметику забывать не стоит никогда. ;) хто-ж в здравом уме и трезвой памяти будет плавучку без крайней необходимости писать? =0
0
|
|
|
0 / 0 / 0
Регистрация: 10.03.2010
Сообщений: 225
|
||
| 11.07.2012, 17:50 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 21.10.2011
Сообщений: 1,860
|
|
| 11.07.2012, 18:03 | |
|
там не просто умножение, а подтягивается библа работы с флоатом, из-за "2,5". со всеми вытекающими.
0
|
|
|
0 / 0 / 0
Регистрация: 10.03.2010
Сообщений: 225
|
||
| 11.07.2012, 18:04 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 9
|
||
| 05.09.2012, 01:43 | ||
|
На основании многочисленных холливаров решил познакомиться с С поближе. Начал со статей Хальта на ЕЕ:http://iosyitistromyss.ru/avr-uchebnyj-kurs-programmyrovanie-na-si-chast-4.html
Работаю со студией 4.18 и WinAVR20100110. Примеры из "курса", помещенные в C:\PRJ_C\Pinboard_1 в студии билдятся и дебагятся без ошибок. Но я решил пойти дальше и разобраться с топиком уважаемого Kitekat . Скопировал в папку C:\PRJ_C\LC-meter-mega8, сделал Make-файл, но при выполнении команды "Build" выдается 14 ошибок, текст типа
[11.39 Кб]
0
|
||
| 05.09.2012, 01:43 | |
|
Наука не отвечает на вопросы "почему". Наука отвечает на вопросы "как, сколько" Вопросы Вопросы по TP Вопросы по C++ Вопросы по Си Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|