Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
winavr почему ругается ?
Отправлено
UraGun
(77.93.41.58)
09 апреля 2011, г. 21:32
пример:
bool podprogramma(void)
{
return false;
}
грит, давай мол перед буул тип переменной ставь. При этом на void, int и даже на типы которые я объявил не ругается... Мистика.
Составить ответ
|
Вернуться на конференцию
Ответы
Всем гранмерси, всё сконвертилось. Итого. Переползти с IAR на WINavr не катастрофа. пол дня потратил на адаптацию софтины с выходным хексом в 25кБ. Толи на IARе писал аккуратно, толи повезло... в обем скомпилилось, лиха беда-начало. Терь причёсывать. Кто в курсе
-
UraGun
(231 байт, 09.04.2011, 22:21:3
77.93.41.58
)
По моим несложным проектам WinAVR проигрывает IARу 10..20% по размеру, код 8..10к. По быстродействю на практике различий не заметил. Оптимизацию всегдо ставлю "-Os" - в иных вариантах оптимизация может удивить.
-
Дастун
(
пустое
, 10.04.2011, 00:19:0
95.72.151.116
)
Проще всего использовать AVR Studio. установленный поверх WinAVR. Тогда AVR Studio сама обнаруживает WinAVR и использует его как компилятор. Никаких плясок с make-файлом - всё делает само. Там очень легко крутить оптимизацию. Результат в файле *.lss. На счёт IAR-лидер - не уверен. Мне не с чем сравнивать, но в паре кусков, которые мне давали - IAR сливал WinAVR.
-
Юрий_СВ
(174 байт, 09.04.2011, 22:58:50
213.5.199.158
)
интересуюсь способом разместить AVR Studio, WinAVR и желательно Eclipse на флешке, чтобы работать со всем вместе без инсталляции на комп - portable-вариант. может, кто уже подготовил такое? у меня что-то не получается подружить portable-AVRStudio и WinAVR... за Eclipse пока и не брался...
-
A_R_V
(
пустое
, 09.04.2011, 23:04:27
87.117.1.198
)
вот нагуглил случайно
-
werewolf
(
пустое
,
ссылка
, 10.04.2011, 00:08:27
95.134.234.105
)
А скаких пор в Си есть bool. В паскеле - есть. А на void и int и не должен ругаться - это родные типы. Если хотите использовать bool - опишите его.
-
Юрий_СВ
(
пустое
, 09.04.2011, 21:52:59
213.5.199.158
)
а кто вместо него ? С видать на столько продвинут, что булевые операции для него мизерабль...
-
UraGun
(
пустое
, 09.04.2011, 21:54:35
77.93.41.58
)
вообщето в нормальных сях оно "built-in type" , тобишь ненадо ничо подключать, он сам заменит на нужный ему тип, в сях посвежее это байт, раньше был инт.
-
колян безпарольный
(
пустое
, 09.04.2011, 22:01:9
193.200.150.125
)
если мне нужно вернуть булевое значение на выходе из подпрограммы как это классически делается в С ?
-
UraGun
(
пустое
, 09.04.2011, 21:55:30
77.93.41.58
)
Естественно, unsigned char. А какой смысл делать иначе. Обычные процессоры не умеют передавать (сохранять) биты - только слово минимальной разрядности (8 бит). Чтобы вы не написали в любом языке - будет так. (спец флаг - не в счёт)
-
Юрий_СВ
(
пустое
, 09.04.2011, 22:00:48
213.5.199.158
)
Хм, а ведь прав боярин... чо заморачиваться с битом, еси один хрен байт гнать...
-
UraGun
(
пустое
, 09.04.2011, 22:07:44
77.93.41.58
)
правильней будет таки заморочиться и описать бул тру и фалс
-
колян безпарольный
(
пустое
, 09.04.2011, 22:12:5
193.200.150.125
)
ну я записал токо мне кажется что это не вполне справедливая запись.
-
UraGun
(64 байт, 09.04.2011, 22:13:19
77.93.41.58
)
Не надо тянуть сюда паскаль. Паскалю до Си - как до киева раком (писАл и на паскале). Тем более. что с "#define true 1" можете попасть. В Си есть 0 и не 0. И это очень логично, т.к. процессор выполняет проверку на ноль. Т.е 45и32=истина, но это не равнго вашему true
-
Юрий_СВ
(
пустое
, 09.04.2011, 22:19:7
213.5.199.158
)
трактовка чисел как булевских значений - это изъян, изначально заложенный в язык Си. Паскать от этого изъяна ушёл, строго разделив типы, но лучше всего булево-числовое сосуществование реализовано в Lua (+)
-
Токовый клещ
(595 байт, 10.04.2011, 14:23:30
95.31.92.218
)
надо срочно билу позвонить, чтоб скорректировал afx.h )))
-
колян безпарольный
(
пустое
, 09.04.2011, 22:25:15
193.200.150.125
)
хотя перцы из саурфорж не мудствую лукаво в своём stdbool.h
-
UraGun
(127 байт, 09.04.2011, 22:31:36
77.93.41.58
)
майкрософт тоже надеется что програмисты не будут булевой переменной присваивать 45 и 32 и потом говорить всем что с булом "можно попасть" )))))
-
колян безпарольный
(165 байт, 09.04.2011, 22:35:35
193.200.150.125
)
45 - переменная (необъявленное битовое поле), 32 - константа (битовый флаг). Очень частая и жизненная ситуация.
-
Юрий_СВ
(
пустое
, 09.04.2011, 22:43:33
213.5.199.158
)
ссать мимо унитаза тоже частая жизненная ситуация, но если прицелиться то проблем не будет, равно как и не будет проблем если перед проверкой була его как минимум инициализировать и писать в него осознанные вещи.
-
колян безпарольный
(
пустое
, 09.04.2011, 22:48:16
193.200.150.125
)
дык вотож, а запись
-
UraGun
(155 байт, 09.04.2011, 22:23:0
77.93.41.58
)
~0 ==1? но не увлекайтесь - пишите на Си, а не на Паскале. Записи FALSE/TRUE иногда использовать можно и удобно - н-р, при задании значений битовых полей, как и другин похожие ON/OFF, PRESENT/ABSENT..... Сравнивать с ними не всегда можно. Вообщем, при неудачном их использовании либо получите ошибку, либо - неэффективный код.
-
Юрий_СВ
(
пустое
, 09.04.2011, 22:35:4
217.12.195.250
)
там не вопросительный знак, а запятая
-
Юрий_СВ
(
пустое
, 09.04.2011, 22:35:42
213.5.199.158
)
Ну я из тех же соображений обственно
-
UraGun
(
пустое
, 09.04.2011, 22:38:5
77.93.41.58
)
вполне нормальная запись, еще опиши сам бул через typedef
-
колян безпарольный
(
пустое
, 09.04.2011, 22:18:12
193.200.150.125
)
не, Колянчег, не шибко она нормальная.
-
UraGun
(
пустое
, 09.04.2011, 22:23:34
77.93.41.58
)
есть люди которые пытаются быть большими католиками чем папа римский. Если ты работаешь с типом бул то ты заранее знаешь что переменная этого типа может быть тру или фалс, и больше ничего в нее писать не имеешь права. Когда-же ты работаешь с булом как с чаром и пишешь в него всякую херню- кто тебе виноват?
-
колян безпарольный
(
пустое
, 09.04.2011, 22:29:6
193.200.150.125
)
частично ты прав, но я ж пользую не только свои подпрограммы,
-
UraGun
(224 байт, 09.04.2011, 22:33:42
77.93.41.58
)
это параноя. Есть старый анекдот
-
колян безпарольный
(496 байт, 09.04.2011, 22:42:32
193.200.150.125
)
так отож :) я знаю что процесс вычищания багов из моего софта - штука бесконечная, с той же вероятностью ошибок можно относиться и к чужому софту :)
-
UraGun
(
пустое
, 09.04.2011, 23:17:23
77.93.41.58
)
конечно что бесконечная, если будешь влуплять в булы трехзаначные числа)))
-
колян безпарольный
(
пустое
, 09.04.2011, 23:22:56
193.200.150.125
)
да и папа не апофеоз католицизма, он персона выборная, не факт шо взяли самого папскоко из пап.
-
UraGun
(
пустое
, 09.04.2011, 22:34:38
77.93.41.58
)
Там, где очень надо компактно использовать память и регистры - используёте битовые поля.
-
Юрий_СВ
(
пустое
, 09.04.2011, 22:10:59
213.5.199.158
)
как рвз такая задачка и есть, но заморочено это для меня пока. выделить байтовых переменных
-
UraGun
(504 байт, 09.04.2011, 22:17:15
77.93.41.58
)
Что-то одно или экономия памяти или скорость :). union вам в помощь. На счёт адресации всё просто: адресуется только байт и более, а всё, что менее - обрабатывается маской при любом компиляторе и стиле. Другого процессор не умеет.
-
Юрий_СВ
(
пустое
, 09.04.2011, 23:04:58
213.5.199.158
)
да, в эту же копилку непоняток,
-
UraGun
(208 байт, 09.04.2011, 21:34:26
77.93.41.58
)
С переключением стандартов не разбирался, но AVR Studio формирует Makefile, в котором так:
-
Юрий_СВ
(149 байт, 09.04.2011, 21:57:48
213.5.199.158
)
ага, БОЛЬШУЩЕЕ СПАСИБО, никак не мог придумать куда его прикрутить, заработало, но текст уже перепахал под архаизмы :) назад что ли исправить? ....
-
UraGun
(
пустое
, 09.04.2011, 22:12:5
77.93.41.58
)
поставь линукс (с)
-
колян безпарольный
(
пустое
, 09.04.2011, 21:36:37
193.200.150.125
)
айспасиба. мне ещё осталось комп на мак поменять и полный фарш буит. :(
-
UraGun
(
пустое
, 09.04.2011, 21:39:58
77.93.41.58
)
а если return(false);
-
колян безпарольный
(
пустое
, 09.04.2011, 21:34:12
193.200.150.125
)
Да он своллочь ругается ещё на файл заголовка. там где я объявляю эту подрограмму.
-
UraGun
(
пустое
, 09.04.2011, 21:35:10
77.93.41.58
)
Да.. туповатая среда... оказывается нужно подключить stdbool.h ..... это нечто...
-
UraGun
(
пустое
, 09.04.2011, 21:46:6
77.93.41.58
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 45:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru