реклама на сайте
подробности

 
 
4 страниц V  « < 2 3 4  
Reply to this topicStart new topic
> Что лучше взять для AVR?, Программить на С.
Георгий
сообщение Nov 28 2005, 11:03
Сообщение #46


Местный
***

Группа: Свой
Сообщений: 269
Регистрация: 17-11-05
Из: Киров-Москва
Пользователь №: 10 957



Вопрос по опциям ИАРа - char можно сделать по умолчанию беззнаковым, а про int я такого не нашел, возможно ли это. А то у меня получилось, что 0х8000 < 0, т.е. по умолчанию int идет со знаком.


--------------------
Обычно последним смеется тот, кто хуже соображает!
Go to the top of the page
 
+Quote Post
Rash
сообщение Nov 28 2005, 11:12
Сообщение #47


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



Цитата(Георгий @ Nov 28 2005, 15:03) *
Вопрос по опциям ИАРа - char можно сделать по умолчанию беззнаковым, а про int я такого не нашел, возможно ли это. А то у меня получилось, что 0х8000 < 0, т.е. по умолчанию int идет со знаком.


Переопредели типы typedef (ом) если надо. и сделай WORD, DWORD и т.д.

Код
typedef unsigned char       BYTE;      
typedef unsigned char       WORD
Go to the top of the page
 
+Quote Post
Георгий
сообщение Nov 28 2005, 11:50
Сообщение #48


Местный
***

Группа: Свой
Сообщений: 269
Регистрация: 17-11-05
Из: Киров-Москва
Пользователь №: 10 957



Так я так и делаю, только в последнем примере не char а int. Просто, для char сделана специальная галочка, а про int не подумали. В "большом" Си int по умолчанию беззнаковый.


--------------------
Обычно последним смеется тот, кто хуже соображает!
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Nov 28 2005, 12:41
Сообщение #49


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Георгий, обычно программисты стремятся к независимости своих программ от конкретного компилятора или среды.
Rash для этого указал Вам приемлемое решение.
Стандарт MISRA, кстати, тожеэто рекомендует.
Вы же наоборот пытаетесь сделать Ваш проект зависимым от "галочек" среды.
Что касается знаковости типов, то насколько я помню, согласно стандарта только char по умолчанию беззнаковый, а int и long - знаковые.
Или я ошибаюсь?
Go to the top of the page
 
+Quote Post
Георгий
сообщение Nov 28 2005, 13:08
Сообщение #50


Местный
***

Группа: Свой
Сообщений: 269
Регистрация: 17-11-05
Из: Киров-Москва
Пользователь №: 10 957



Я думаю, что Вы правы , спорить не буду. В тонкостях Си я еще не силен.smile3046.gif
Уточнился по борладндовскому хэлпу (Билдер), там сказано что и char по умолчанию знаковый. В IAR-е видимо для таких как я галочку поставили, чтоб хоть с char поначалу не заморачиваться. Привыкли, что в железе знаков нет.

Сообщение отредактировал Георгий - Nov 28 2005, 13:17


--------------------
Обычно последним смеется тот, кто хуже соображает!
Go to the top of the page
 
+Quote Post
ReAl
сообщение Nov 28 2005, 17:04
Сообщение #51


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Георгий @ Nov 28 2005, 16:08) *
Я думаю, что Вы правы , спорить не буду. В тонкостях Си я еще не силен.smile3046.gif
Уточнился по борладндовскому хэлпу (Билдер), там сказано что и char по умолчанию знаковый. В IAR-е видимо для таких как я галочку поставили, чтоб хоть с char поначалу не заморачиваться. Привыкли, что в железе знаков нет.

В любом мало-мальски приличном букваре по С сказано - не закладываться на знаковость char вообще - нигде и никогда, ни явно, ни неявно.
Вот писатели пикада не подумали об этом где-то пропустили при чтении ASCII-формата входящие симовлы через char - и мы имеем облом на русской букве "я" - код 0xFF, который при пропускании через знаковый char в int превращается в полновесный -1 и мы имеем unexpected end of file на строке "схема электрическая принципиальная" - надо большими буквами писать. Естественно, это моё предположение, но больно оно правдоподобно выглядит.

Так о чём это я... А! Так вот, любая приличная книга говорит - если знак важен - указывать явно unsigned char или signed char - в зависимости от того, что надо.
У меня тип char если используется - то это явное предупреждение для меня же более позднего - "тут хранятся не более чем символы, никакой арифметики, сравнение только с символьными константами на равенство"

А стандарт языка С 99-го года заводит стандартный заголовочный файл stdint.h , в котором должны через typedef определяться типы int8_t uint8_t ... int64_t uint64_t.
Я бы рекомендовал пользоваться этими типами, а не byte/word/dword (особенно учитывая то, что word на x86 - это halfword на ARM, dword на x86 - это word на ARM).
Если stdint.h в поставке имеющегося компилятора нет - несложно написать и приложить самому.
Что я во всех новых проектах и делаю уже года 4. И даже один старый, но развивающийся - не поленился со старых i08/u08/../i32/u32 пере-sed-ить на новые стандартные typedef-ы.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
dxp
сообщение Nov 29 2005, 06:41
Сообщение #52


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(IgorKossak @ Nov 28 2005, 18:41) *
Что касается знаковости типов, то насколько я помню, согласно стандарта только char по умолчанию беззнаковый,

В Стандарте на С, afair, знаковость char отдана на откуп реализации. В Стандарте С++ типы char, unsigned char и signed char - это три разных типа.

Цитата(IgorKossak @ Nov 28 2005, 18:41) *
а int и long - знаковые.

Да, целые типы - знаковые.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
noah
сообщение Dec 15 2005, 08:02
Сообщение #53





Группа: Новичок
Сообщений: 1
Регистрация: 27-11-05
Пользователь №: 11 448



Цитата(MicronSys @ Nov 23 2005, 14:35) *
Я использую
WinAvr + VMLAB получается хорошая связка

до этого работал на IAR C++ симулятор AVRstudio

WinAvr немного больше код делает на компилит давольно таки хорошо
VMLAB очень хороший симулятор правда не без хрехов



На счет того что VMLAB - хороший я согласен - внутренности МК видит прекрасно!! Вот может
кто-то знает как его вылечить от того чтобы он обрабатывал код больше 500 слов, меньше у меня программы не получаются..
Go to the top of the page
 
+Quote Post
Rich
сообщение Mar 10 2006, 19:04
Сообщение #54





Группа: Новичок
Сообщений: 2
Регистрация: 10-03-06
Пользователь №: 15 106



Народ, подскажите новичку: скачал последнюю AStudio с плагином для С от GCC, но он пишет, что ПСС надо устанавливать отдельно. Установил с диска от книжки Голубцова версию 3.0.2 кажется. В хелпе к АВР Студии прочел как конфигурить, но вот беда кнопка с "..." у меня не жмется, не5 могу прописать пути. Что делать? Качать новую версию GCC или косяк в другом?
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Mar 10 2006, 20:46
Сообщение #55


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Несколько лет назад, когда начинал работать с gcc соблазнился возможностью прикрутить его к AStudio(разных версий). Полноценной работы так и не удалось добиться. Вроде бы с 4.10 это наконец работает,но предыдущий опыт убеждает - не стоИт на это тратить время -прикрути к любому текстовому редактору и воюй.
Под тем же PN, который идет с WinAVR у меня подцеплены gcc под Win32, AVR, MSP,ARM.Под ним же работаю с TCL, Python и и редактирую HTML. Рука уже набита на конкретные меню и шорткаты.
Ну а если позарез нужна отладка, тогда юзать студию как симулятор.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 11 2006, 04:26
Сообщение #56


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Rich @ Mar 10 2006, 21:04) *
Народ, подскажите новичку: скачал последнюю AStudio с плагином для С от GCC, но он пишет, что ПСС надо устанавливать отдельно. Установил с диска от книжки Голубцова версию 3.0.2 кажется. В хелпе к АВР Студии прочел как конфигурить, но вот беда кнопка с "..." у меня не жмется, не5 могу прописать пути. Что делать? Качать новую версию GCC или косяк в другом?

вот эта версия автоматически подхватывается AVR-Studio http://prdownloads.sourceforge.net/winavr/...ll.exe?download (~14mb)

почитать можно здесь:
http://sourceforge.net/forum/forum.php?forum_id=446217
Go to the top of the page
 
+Quote Post

4 страниц V  « < 2 3 4
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 11:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01574 секунд с 7
ELECTRONIX ©2004-2016