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

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

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

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

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

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


 
Опции темы
Непрочитано 29.07.2013, 08:11  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
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.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,630
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

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

Сообщение от eddy Посмотреть сообщение
Выше же сказали, коротко и ясно: в стандарте С нет типов int8_t, uint16_t и т.п.
А еще стандарт не гарантирует, что char — восьмибитное целое, или int — 32-битное. Кроме того, есть такие вещи, как порядок следования байтов в многобайтных типах (как минимум три известных архитектуры). И это тоже стандартом не регулируется!
Дык речь то не о каком то "классическом стандарте".
Здесь попытка протереть глаза нубам, что бы юзали вещи уже ставшие стандартом и не попадали на классические же грабли.
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 29.07.2013, 09:14  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
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,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
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.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,630
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

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

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

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

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

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

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

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

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

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

Сообщение от nahimovv Посмотреть сообщение
Нет классического и неклассического Си
ОК, пусть это будут разные стандарты. Но, например, тот же C11 — совсем новая штука, не факт, что многие в нем разбираются. А "керниганоритчевский" С — устоявшийся стандарт, и понять его может каждый, кто С изучал. Вот я это все к тому, что пользуйтесь чем угодно, но не надо новомодные веяния выдавать за классику!
__________________
Союз Советских Социалистических Округов Северной Америки
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, время: 21:04.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot