Обсуждаем контроллеры компании Atmel.
Ответить

Ср янв 09, 2008 15:55:32

ARV
Спасибо!
что то я об этом тоже не подумал.
Да, интересно, почему CodeVision ухитряется обойтись малой кровью. Расчитан на нас - неучей?

Ср янв 09, 2008 16:01:25

savage писал(а):ARV
Спасибо!
что то я об этом тоже не подумал.
Да, интересно, почему CodeVision ухитряется обойтись малой кровью. Расчитан на нас - неучей?

очень может быть :) но скорее всего там иной принцип построения компилятора - GCC - это действительно кросплатформенный компилятор, там все нюансы стандарта реализованы + всякие нюансы МК... а CodeVision, возможно, заточен именно под МК AVR, и какие-то возможности от стандарта Си отходят... Так что еще не факт, что в действительно серьезных проектах CodeVision не выкинет какого-то иного коника...

AVR-GCC под LINUX

Ср янв 30, 2008 18:25:02

Никто не озадачивался AVR-GCC под LINUX?
Ищу подходящую графическую оболочку для него. Чтото пока не продвинулся.
Связка Wine+WinAVR+AVRStudio4 не работает в виду подвисания студии.
Eclipse+AVR-GCC хороший выход, но не нравится каждый раз в свойствах проекта прописывать компилятор и пути. К тому же я не освоился пока с Eclipsом.
Может видел кто готовые примочки для Eclipsа чтобы заставить его напрямую работать с avr-gcc, или графическую оболочку наподобии AVRStudio?

Вс фев 24, 2008 00:04:48

jax писал(а):ребят, подскажите как грамотно опросить кнопку?
я делаю
Код:
if(!(PINC & (1<<PC3)))

в программе всего лишь две процедуры:main и та, которая вызывается по нажатию кнопки.
при нажатии кнопки вызванная процедура зацикливается..
как быть?


Код:
if(bit_is_clear(PINC,PC3)) {...} // Если бит сброшен, то...
// if(bit_is_set(PINC,PC3)) {...}

Вт фев 26, 2008 19:08:26

Что такого серьезного поменяли в версии WinAVR 2007 года?
То что компилится и работает в 2005ой не работает в 2007ой версии, а именно драйвер ЖКИ, хотя при компиляции ошибок нет. :cry: :( :o :shock:

Вт фев 26, 2008 19:26:43

хрен его знает, че они там понаменяли... вроде, пишут, только улучшили и рсширили... однако из листинга пропали операторы Си, что меня больше всего огорчает :(
однако по логике вещей все должно компилиться без искажений... совместимость-то вроде бу сохранена.

Вт фев 26, 2008 19:42:40

только, что попробовал на 2006ой - все работает.
захожу в 2007ую - тоже компилит нормально (все файлы кроме исходников удалил)
размер програмы такой же как и в 2006ой получается
удаляю 2006ую, пробую опять в 2007ой - уже прошывка на 100 байт меньше и не работает как следует! прикол...

Вт фев 26, 2008 20:45:14

подскажыте, как зделать так, чтобы компилятор не компилировал функции которые я не использую? Ато я все свои полезные функции кинул в один файлик, но когда его подключаю, то фсе эти функции записываются в МК, хотя я использую только некоторые.

Вт фев 26, 2008 23:00:18

Томатный писал(а):подскажыте, как зделать так, чтобы компилятор не компилировал функции которые я не использую? Ато я все свои полезные функции кинул в один файлик, но когда его подключаю, то фсе эти функции записываются в МК, хотя я использую только некоторые.
это делается так:
1. открываем опции проекта, заходим в раздел Custom Options
2. в этом разделе в строке левее кнопки Add вводим следующее -ffunction-sections
3. Нажимаем кнопку Add
4. в окошке слева щелкаем на [Linker Options]
5. теперь в той же строке вводим -Wl,-gc-sections
6. жмем Add и Ok
7. выполняем компиляцию всего проекта Build all

Внимание! Эти опции вкупе с режимами оптимизации могут создавать удивительные ситуации при отладке! Код при этом остается работоспособным. Выделенные синим строки вводить 1 в 1, как написано, пробелы и регистр критичны!

Вс мар 02, 2008 23:27:47

не нашел :oops:

Пт мар 14, 2008 08:55:59

knyaz* писал(а):Написал программу - нет прерывания... - TAXOMETP.zip
http://www.radiokot.ru/forum/viewtopic.php?t=8473


Если у вас новый WinAVR то SIGNAL нужно заменить так как описано в примерах для разных компиляторов на стр. 3 "Прерывания в AVR"

Пт мар 14, 2008 15:59:30

у меня avr-gcc для linux спасибо

Сб мар 15, 2008 18:40:17

проблема возникает очень большая тот же самый код скомпилированный в CVAVR работает нормально а вот если компилировать в WinAVR или avr-gcc (что по сути одно и тоже) работать отказывается?

Кто сталкивался с таким траблом...

Сб мар 29, 2008 20:24:11

Хоть я и склоняюсь к ассемблеру, но всё-таки решил поэкспериментировать на сях. Вобщем попробовал я переписать на сях то, что было написано на асме и успешно работало. Взял IAR, написал, скомпилил, зашил, - работает. Взял CodeVisionAVR, написал, скомпилил, зашил, - работает. Взял WinAVR, написал, скомпилил, зашил, - НЕ работает. :))
В исходниках подправлялись только места под конкретные особенности каждого компилятора. Например объявление функции прерывания, хэдеры и т.п. В остальном код не менялся. При чем в первых двух вышеупомянутых компиляторах все работало на любом уровне оптимизации. А в WinAVR не заработало ни на одном уровне. При чем компилил как при помощи идущего в комплекте "Programmers Notepad", так и через AVRStudio, результат один и тот же. Потом попробовал поиграться с ним, посоздавать какие-нибудь функции и т.д. Так это вообще - мрак. Он оказывается умеет создавать фукции без конечной инструкции RET, с бесконечным циклом. Попав в которую я думаю ясно - что будет. :)) Это всё касается версии WinAVR-20071221 Про другие ничего не могу сказать. Но именно эта создала впечатление полной непредсказуемости и глючности.

Сб мар 29, 2008 20:37:17

Brutaller писал(а):Это всё касается версии WinAVR-20071221 Про другие ничего не могу сказать. Но именно эта создала впечатление полной непредсказуемости и глючности.


Советую использовать предыдущую версию WinAVR.
Последний раз редактировалось tych Сб мар 29, 2008 20:52:44, всего редактировалось 2 раз(а).

Сб мар 29, 2008 20:48:28

tych писал(а):Советую использовать предыдущую версию WinAVR.
Какую именно, номер?
Между прочим совсем на днях появилась 20080402rc1, надо попробовать.

Сб мар 29, 2008 20:53:36

Brutaller писал(а):
tych писал(а):Советую использовать предыдущую версию WinAVR.
Какую именно, номер?


Скачайте стабильную версию WinAVR-20060421 (24 Мб) и сохраните в вашем архиве - авось еще пришодится.

Сб мар 29, 2008 21:08:41

tych писал(а):Скачайте стабильную версию WinAVR-20060421 и сохраните в вашем архиве - авось еще пришодится.

А это что, единственная стабильная версия? А все последующие бажные?

Сб мар 29, 2008 21:16:58

WinAVR я сам осваиваю недолго, однако, особых глюков не заметил... если не считать вынесенной в отделную тему проблемы с EEPROM, да и то еще неизвестно, что именно там за проблема...
WinAVR по моему скоромному мнению вполне нормально все компилит, просто сильно соответствует стандарту С99 и не прощает разных вольностей, которые часто прощают другие компиляторы. Но если привести исходник в строгое соответствие стандарту - по-моему, все отлично работает.
А оптимизация визуально может приводить к странному поведению при отладке... но это не глюк, так по идее во всех системах...

Вс мар 30, 2008 01:05:12

Ага, разобрался в чем дело. Беру свои слова по поводу глюкавости назад. Дело в том, что если в CVAVR или IAR достаточно было написать:
PORTB=Table[Dig1];
чтобы загрузить байт из памяти программ,
то в WinAVR надо вот так:
PORTB=pgm_read_byte(&Table[0]+Dig1);
т.е. через указатели и специальные функции %)
И еще интересная строчка попалась в файле avr-libc-user-manual.pdf
GCC does not have full support for multiple address spaces yet
и потом куча всяких функций для доступа к памяти программ.
Ну вобщем то ясно, всё-таки WinAVR это "порт" GCC под avr, поэтому то такие вот пляски :)
Ответить