Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

Оптимальный старт в программировании МК на С

Непрочитано 29.07.2013, 08:11  
oleg110592
Гражданин KAZUS.RUN
 
Регистрация: 05.04.2009
Сообщений: 973
Сказал спасибо: 35
Сказали Спасибо 154 раз(а) в 133 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Цитата:
stdint.h is a header file in the C standard library introduced in the C99 standard library section 7.18 to allow programmers to write more portable code by providing a set of typedefs that specify exact-width integer types, together with the defined minimum and maximum allowable values for each type, using macros[1] . This header is particularly useful for embedded programming which often involves considerable manipulation of hardware specific I/O registers requiring integer data of fixed widths, specific locations and exact alignments. stdint.h (for C or C++), and cstdint (for C++) can be downloaded or quickly created if they are not provided.
http://en.wikibooks.org/wiki/C_Progr...rence/stdint.h
корявый перевод гуглом:
Цитата:
stdint.h располагается заголовок файла в стандартной библиотеки языка Си введены в стандарт C99 разделе библиотеки 7.18, чтобы позволить программистам писать код более переносимым, предоставляя набор определений типов, которые определяют точную ширину целых типов, а также определены минимальные и максимальные допустимые значений для каждого типа, с помощью макросов [1]. Этот заголовок особенно полезно для программирования встроенных систем, которые часто влечет за собой значительные манипуляции конкретных аппаратных регистров ввода / вывода требующих целое данные фиксированная ширина, конкретные места и точного выравнивания. stdint.h (для C или C + +), а cstdint (для C + +) может быть загружена или быстро создать, если они не предусмотрены.
на Атмел, смотря разные AN, вообще равняться что-то тяжело (Atmel: AVR124):
Код:
typedef unsigned char       U8 ;
typedef unsigned short 	    U16;
typedef unsigned char       Uchar;
typedef unsigned long int   Uint32;
unsigned int gAdcOffset = 0;
uint32_t gAdcSyncMeasValue = 0;
#define uint32_t unsigned long
#define uint16_t  unsigned int
#define uint8_t  unsigned char
три последние строчки мне непонятны - оно уже вроде было определено
Реклама:
oleg110592 вне форума  
Непрочитано 29.07.2013, 08:28  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от tempora Посмотреть сообщение
eddy, любезный, цитата будет, нет?
Цитата чего? K&R?
А ничего, что "C-99" — это надстройка над "классическими" сями. Недавно, вон, вообще C11 появились. Там такое есть, о чем K&R даже и не думали!
Я не считаю правильным называть C-99 или C11 сями. С — это классические, "керниганоричевские" С. А эти уж называйте, как положено. Все-таки, вы когда компиляете, ставите флаги: например, без "-std=gnu99" ваш gcc не врубится, что текст программы на C-99, а не классических сях!
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 29.07.2013, 08:47  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от eddy Посмотреть сообщение
Выше же сказали, коротко и ясно: в стандарте С нет типов int8_t, uint16_t и т.п.
А еще стандарт не гарантирует, что char — восьмибитное целое, или int — 32-битное. Кроме того, есть такие вещи, как порядок следования байтов в многобайтных типах (как минимум три известных архитектуры). И это тоже стандартом не регулируется!
Дык речь то не о каком то "классическом стандарте".
Здесь попытка протереть глаза нубам, что бы юзали вещи уже ставшие стандартом и не попадали на классические же грабли.
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 29.07.2013, 09:14  
oleg110592
Гражданин KAZUS.RUN
 
Регистрация: 05.04.2009
Сообщений: 973
Сказал спасибо: 35
Сказали Спасибо 154 раз(а) в 133 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от eddy Посмотреть сообщение
ставите флаги: например, без "-std=gnu99"
раньше не задумывался на каком си я пишу, оказывается авр студия за меня этот флаг поставила:
Цитата:
avr-gcc -mmcu=atmega168 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=7372800UL -Os ...
так что, думаю надо соответствовать стандарту
oleg110592 вне форума  
Непрочитано 29.07.2013, 09:57  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,427
Сказал спасибо: 0
Сказали Спасибо 381 раз(а) в 251 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от eddy Посмотреть сообщение
Я не считаю правильным называть C-99 или C11 сями. С — это классические, "керниганоричевские" С. А эти уж называйте, как положено.
Это всё от элементарной тупости и глупости!
Цитата:
C99 — современный стандарт языка программирования Си. Определен в ISO/IEC 9899:1999, современная версия - ISO/IEC 9899:1999/Cor 3:2007 от 2007-11-15. Является развитием стандарта C90.
Если для вас CV является стандартом и богом в одном лице, то это ваши проблемы - к доктору.
nahimovv вне форума  
Непрочитано 29.07.2013, 10:51  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от oleg110592 Посмотреть сообщение
авр студия за меня этот флаг поставила
А вот делали бы без "студий", знали бы
Сообщение от dosikus Посмотреть сообщение
Дык речь то не о каком то "классическом стандарте".
Ну, все равно эти типы стоит использовать лишь тогда, когда действительно нужна жестокая переносимость (например, при обмене информацией в бинарных структурах). Правда, туда же еще и всякие функции вроде htons запихивать надо будет, чтобы наверняка и на big-endian, и на little-endian и даже на mid-endian все работало, как надо.

Сообщение от nahimovv Посмотреть сообщение
Если для вас CV является стандартом и богом в одном лице, то это ваши проблемы - к доктору.
Вам и советую идти к доктору! Если новичок что-то спрашивает, то обычно ему отвечают в рамках классического С. А С99 уже обладает всякими прибамбасами. Причем многие из них очень даже вредны (например, динамические массивы).
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 29.07.2013, 11:11  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от eddy Посмотреть сообщение
Если новичок что-то спрашивает, то обычно ему отвечают в рамках классического С. А С99 уже обладает всякими прибамбасами. Причем многие из них очень даже вредны (например, динамические массивы).
То есть ты так же за то ,
что для новичков нужны какие то тепличные условия ,
что то попроще из темы облегчалок и только потом приводить к стандарту?
Я лично против. Или сразу к стандартам или ни как...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 29.07.2013, 11:13  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,427
Сказал спасибо: 0
Сказали Спасибо 381 раз(а) в 251 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от eddy Посмотреть сообщение
Если новичок что-то спрашивает, то обычно ему отвечают в рамках классического С.
Бред! Нет классического и неклассического Си. Есть старые стандарты Си и новые, но это всё стандарты Си, нравится вам это или нет.

И новичкам не положено глаголить
Сообщение от eddy Посмотреть сообщение
Я не считаю правильным
по статусу! Так как знаний - ноль, скромнее нужно быть и соблюдать цветовую субординацию штанов.

Цитата:
А С99 уже обладает всякими прибамбасами. Причем многие из них очень даже вредны (например, динамические массивы).
И что? Незнание Си не освобождает от крэш-трэш-ответственности.

Последний раз редактировалось nahimovv; 29.07.2013 в 11:16.
nahimovv вне форума  
Непрочитано 29.07.2013, 11:16  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,427
Сказал спасибо: 0
Сказали Спасибо 381 раз(а) в 251 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от dosikus Посмотреть сообщение
Или сразу к стандартам или ни как...
100% !
Есть желание учиться-осваивать - пожалуйста, нет - пусть идёт лесом... грибы собирает...
nahimovv вне форума  
Непрочитано 29.07.2013, 11:27  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

dosikus, я за то, чтобы сначала человек выучил по-человечески основы языка программирования, и лишь потом начинал пользоваться всякими прибамбасами. А то, понимаешь, начнет сразу использовать динамические массивы или еще какую "фишку", и где-нибудь в очередном проекте сядет в лужу, когда у него "внезапно" кончтится стек или еще что-нибудь эдакое произойдет!

Сообщение от nahimovv Посмотреть сообщение
Нет классического и неклассического Си
ОК, пусть это будут разные стандарты. Но, например, тот же C11 — совсем новая штука, не факт, что многие в нем разбираются. А "керниганоритчевский" С — устоявшийся стандарт, и понять его может каждый, кто С изучал. Вот я это все к тому, что пользуйтесь чем угодно, но не надо новомодные веяния выдавать за классику!
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимальный лазерник для ЛУТ Kabron Делимся опытом 187 31.05.2016 10:51
Оптимальный привод тележки весом 200кг d-f-m Производственное оборудование 18 12.07.2010 00:29
[Решено] Оптимальный коттеджный домофон LAVR12 Автоматика и аппаратура связи 0 22.04.2010 20:17
О программировании AVR на C++ neiver Микроконтроллеры, АЦП, память и т.д 55 24.03.2010 19:33
Оптимальный ламинатор для ЛУТ snakesoft Делимся опытом 7 13.01.2010 22:41


Часовой пояс GMT +4, время: 10:56.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.