Smoky 0 31 мая, 2012 Опубликовано 31 мая, 2012 · Жалоба Коллеги, объясните что это за опрерация и применима ли она в WinAVR? TWCR=((1<<TWEN)+(1<<TWINT)+(1<<TWSTO)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 31 мая, 2012 Опубликовано 31 мая, 2012 · Жалоба Коллеги, объясните что это за опрерация и применима ли она в WinAVR? TWCR=((1<<TWEN)+(1<<TWINT)+(1<<TWSTO)) Запись в TWCR байта с установленными (равными 1) битами TWEN, TWINT и TWSTO. Чаще пишут TWCR=((1<<TWEN)|(1<<TWINT)|(1<<TWSTO)) . Но результат тот же. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Smoky 0 31 мая, 2012 Опубликовано 31 мая, 2012 · Жалоба Запись в TWCR байта с установленными (равными 1) битами TWEN, TWINT и TWSTO. Чаще пишут TWCR=((1<<TWEN)|(1<<TWINT)|(1<<TWSTO)) . Но результат тот же. Спасибо. Меня смущает только то что в одной функции одновременно одна и таже операция записана по разному: так как привёл я и так как привели вы. Весьма странно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 31 мая, 2012 Опубликовано 31 мая, 2012 · Жалоба Спасибо. Меня смущает только то что в одной функции одновременно одна и таже операция записана по разному: так как привёл я и так как привели вы. Весьма странно. Записать то можно по разному - всё равно это константа #define TWI_BYTE 0x94 TWCR=TWI_BYTE; // тот же результат 22: TWCR=((1<<TWEN)|(1<<TWINT)|(1<<TWSTO)); +00000070: E984 LDI R24,0x94 Load immediate +00000071: 93800074 STS 0x0074,R24 Store direct to data space Может почему-то автору так было удобней в тот момент. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexeyv 0 1 июня, 2012 Опубликовано 1 июня, 2012 · Жалоба Может почему-то автору так было удобней в тот момент. Ага,клавиша "+" располагается удобнее на клавиатуре, или клавишу "|" заело. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Smoky 0 6 июня, 2012 Опубликовано 6 июня, 2012 · Жалоба Помогите, не могу понять: #define CH 0x07 temp=I2C_Rx(NOT_ACK); if(temp&(1<<CH)) - что за операция здесь происходит? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Marto 0 6 июня, 2012 Опубликовано 6 июня, 2012 · Жалоба Помогите, не могу понять: #define CH 0x07 temp=I2C_Rx(NOT_ACK); if(temp&(1<<CH)) - что за операция здесь происходит? единичка сдвигается на семь битов (0x07) и поразрядно складывается с переменной temp. Если седьмой бит переменной temp равен единице, то их побитовая (поразрядная) сумма будет больше нуля, а если значение в скобках if больше нуля, то выполнится соотвествующий код. в противном случае выполнение перейдет на else 1<<CH = 1<<0x07 = 10000000 допустим значение переменной temp = 11011100, тогда 11011100 & 10000000 ____________ 10000000 или temp = 01110000 01110000 &10000000 ____________ 00000000 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Smoky 0 7 июня, 2012 Опубликовано 7 июня, 2012 · Жалоба единичка сдвигается на семь битов (0x07) и поразрядно складывается с переменной temp. Большое спасибо, теперь всё ясно. Я то думал что 0х07 сдвигается на один бит, получался полный ступор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RusikOk 1 31 августа, 2020 Опубликовано 31 августа, 2020 · Жалоба 18.03.2010 в 15:24, Dmitro25 сказал: Подскажите, как в IAR узнать размер кода, который получился после компиляции? 18.03.2010 в 16:14, Сергей Борщ сказал: Tools->Options->Messages->Show build messages выбрать all. А еще можно включить генерацию .map - файла (Project->Options->Linker->Listing) и в нем посмотреть детально - какая функция сколько заняла и куда попала. То же и по переменным. подскажите как сделать это в IAR 8.3? у меня в диалоге нет выпадающего списка. есть только кнопка "enable all dialogs" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 31 августа, 2020 Опубликовано 31 августа, 2020 · Жалоба 55 минут назад, RusikOk сказал: подскажите как сделать это в IAR 8.3? Увы, уже лет 8 не пользуюсь ИАРом. Может кто-то другой подскажет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 31 августа, 2020 Опубликовано 31 августа, 2020 · Жалоба 1 час назад, RusikOk сказал: подскажите как сделать это в IAR 8.3? у меня в диалоге нет выпадающего списка. есть только кнопка "enable all dialogs" Во всех версиях IAR это устроен одинаково. Главное меню: Project -> Options -> Linker -> List -> ставите галочку возле "Generate linker map file". Это для того, чтобы линкер *.map файл в директорий List писал. И в этом файле после компиляции найдете интересующую вас информацию - она в самом его конце. Например, у меня так: 51'531 bytes of readonly code memory 1'291 bytes of readonly data memory 12'689 bytes of readwrite data memory Errors: none Warnings: none А такого, чтобы вам эту информацию в каком-то окне само показывало, - этого нет, map-файл надо читать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RusikOk 1 31 августа, 2020 Опубликовано 31 августа, 2020 · Жалоба 1 минуту назад, Xenia сказал: А такого, чтобы вам эту информацию в каком-то окне само показывало, - этого нет, map-файл надо читать. в 7й версии было Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 31 августа, 2020 Опубликовано 31 августа, 2020 · Жалоба А такого, чтобы вам эту информацию в каком-то окне само показывало, - этого нет, map-файл надо читать. Не поверите, шайтан (-8Ж , само показывает, но при компиляции\сборке. Вызывается "магией" View-->Messages-->Build; окошко будет или пристыкованное или плавающее. Проверено: EWARM 3.xx, 6.30, 7.70, 8.40, EW430 6.30, EW8051 10.30 - всё одинаково. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 31 августа, 2020 Опубликовано 31 августа, 2020 · Жалоба 33 минуты назад, RusikOk сказал: в 7й версии было Тогда только это могу посоветовать: вызовите контекстное меню в окне Messages (для этого правой кнопкой мыши по нему кликнуть надо) и там переставьте галочку с Messages на All. Получите много мусора :), среди которого будут и вожделенные вами строки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RusikOk 1 31 августа, 2020 Опубликовано 31 августа, 2020 · Жалоба 15 минут назад, Obam сказал: Не поверите, шайтан (-8Ж , само показывает, но при компиляции\сборке. Вызывается "магией" View-->Messages-->Build; окошко будет или пристыкованное или плавающее. Проверено: EWARM 3.xx, 6.30, 7.70, 8.40, EW430 6.30, EW8051 10.30 - всё одинаково. Вы правы, не поверю 13 минут назад, Xenia сказал: Тогда только это могу посоветовать: вызовите контекстное меню в окне Messages (для этого правой кнопкой мыши по нему кликнуть надо) и там переставьте галочку с Messages на All. Получите много мусора :), среди которого будут и вожделенные вами строки. об этом я уже писал. выпадающего списка просто нету Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться