|
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
|
||||||
Вопросы о С.18.07.2011, 01:49. Показов 165819. Ответов 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 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|