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

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

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

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

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

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


 
Опции темы

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

Непрочитано 29.07.2013, 11:34  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

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

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

Сообщение от eddy Посмотреть сообщение
не вижу: хоть int8_t напиши, хоть char — на большинстве современных архитектур это будет восьмибайтное целое.
Зря не видишь .
int8_t - знаковое целое 8 бит - и это однозначно
char - зависит от компилятора и не всегда оно и беззнаковое и не всегда 8 бит.
Цитата:
Поэтому все-таки лучше такие типы не использовать: пусть компилятор сам решает, что лучше для вашей архитектуры.
Серьезно?
nahimovv же выше приводил что выходит если отдаться компилятору...
__________________
Осторожно , злой кот

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

Сообщение от eddy Посмотреть сообщение
А "керниганоритчевский" С — устоявшийся стандарт, и понять его может каждый, кто С изучал.
взял как начинающий пример из "керниганоритчера":
Код:
 #DEFINE  LOWER 0/* LOWER LIMIT OF TABLE */
 #DEFINE  UPPER 300  /* UPPER LIMIT */
 #DEFINE  STEP  20  /* STEP SIZE */
 MAIN () /* FAHRENHEIT-CELSIUS TABLE */
 {
 INT FAHR;
FOR (FAHR =LOWER; FAHR ‹= UPPER; FAHR =FAHR + STEP)
  PRINTF("%4D %6.1F\N", FAHR, (5.0/9.0)*(FAHR-32));
 }
винавр - не работает, наверное другой стандарт был
Цитата:
../TestKernigan.c:1:3: error: invalid preprocessing directive #DEFINE
oleg110592 вне форума  
Непрочитано 29.07.2013, 11:59  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от oleg110592 Посмотреть сообщение
винавр - не работает, наверное другой стандарт был
Или скопипастил с ошибками либо регистр смени.
Часом не с OCR копипастишь ?


ЗЫ регистр смени и в define и в for да и везде. Это не K&R косяк а редакторов.
__________________
Осторожно , злой кот

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

тут брал: http://lib.ru/CTOTOR/kernigan.txt
у них наверное тогда в пк не было маленьких букв
oleg110592 вне форума  
Непрочитано 29.07.2013, 12:05  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

oleg110592, ясен пень! Как оно будет работать, если регистр верхний?
Кстати, сам замечал: в старых кривых книжках зачем-то набирали сишные тексты заглавными буквами (наверное, бейсико-фортрановское наследие). А между тем C является регистрочувствительным языком!

Вот так правильно:

Код:
#include ‹stdio.h›

#define  LOWER 0/* lower limit of table */
#define  UPPER 300  /* upper limit */
#define  STEP  20  /* step size */
int main(int argc, char **argv){
	int fahr;
	for(fahr =LOWER; fahr ‹= UPPER; fahr =fahr + STEP)
	printf("%4d %6.1f\n", fahr, (5.0/9.0)*(fahr-32));
	return 0;
}
Компиляем:
Код:
gcc 11.c -Wall -Werror -o fahr
запускаем:
Код:
./fahr 
   0  -17.8
  20   -6.7
  40    4.4
  60   15.6
  80   26.7
 100   37.8
 120   48.9
 140   60.0
 160   71.1
 180   82.2
 200   93.3
 220  104.4
 240  115.6
 260  126.7
 280  137.8
 300  148.9
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!

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

oleg110592,
Кстати рекомендую тыркаться не в АВР студии а поставить IDE типа Codeblocks или
DEV-CPP . Создавая консольноые приложения , но не С++ а просто С .
Выхлоп в консоль и дебаг , весьма удобно.
Блин eddy уже опередил с линухом
Миниатюры:
Нажмите на изображение для увеличения
Название: 2013-07-29_121235.png
Просмотров: 42
Размер:	82.0 Кб
ID:	50143  
__________________
Осторожно , злой кот

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

Сообщение от eddy Посмотреть сообщение
Как оно будет работать, если регистр верхний?
там не только это не будет работать - tempora где-то ранее пояснял.
а char там уже давно было написано может быть разным:
Код:
 Таблица 1
  ---------------------------------------------------------
              !
   DEC PDP-11   HONEYWELL    IBM 370     INTERDATA  !
              6000          8/32     !
              !
       ASCII       ASCII       EBCDIC      ASCII    !
              !
    CHAR     8-BITS      9-BITS      8-BITS      8-BITS   !
    INT     16          36       32         32       !
    SHORT    16          36       16         16       !
    LONG     32          36       32         32       !
    FLOAT    32          36       32         32       !
    DOUBLE   64          72       64         64       !
              !
  ---------------------------------------------------------
oleg110592 вне форума  
Непрочитано 29.07.2013, 12:17  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,427
Сказал спасибо: 0
Сказали Спасибо 381 раз(а) в 251 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от eddy Посмотреть сообщение
Как я уже говорил
И что толку с этого?
Цитата:
типы вроде uint8_t, применяются редко
Кто сказал? Источник изысканий можно? Или от фонаря?
Исходники STM8, STM32 и др. просто пестрят этими переобъявлениями!
int'ы ведь тоже могут быть разными, так зачем заранее засирать себе мозги неопределённостью!?
Цитата:
Поэтому все-таки лучше такие типы не использовать: пусть компилятор сам решает, что лучше для вашей архитектуры.
Поэтому все-таки лучше не давать дурных советов, особенно если сам в этом не разбираешься.
nahimovv вне форума  
 
Опции темы

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

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, время: 14:22.


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