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

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

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

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

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

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


 
Опции темы

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

Непрочитано 29.07.2013, 20:42  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от eddy Посмотреть сообщение
слив засчитан.
Да уж давно! Не заметил? Еще несколько сливов показать?
Реклама:
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 29.07.2013, 20:49  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,427
Сказал спасибо: 0
Сказали Спасибо 381 раз(а) в 251 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от eddy Посмотреть сообщение
как настоящий код выглядит…
Ну давайте посмотрим... ваш код.

B-trees.c
Код:
/**
 * Memory allocation with control
 * @param N - number of elements
 * @param S - size of one element
 * @return allocated memory or die
 */
void *my_alloc(size_t N, size_t S){
    void *p = calloc(N, S);
    if(!p) err(1, "malloc");
    return p;
}
Это кто тут вещал о вреде применения динамической памяти?

Код:
static inline uint32_t log_2(const uint32_t x) {
	uint32_t y;
	asm ( "\tbsr %1, %0\n"
		: "=r"(y)
		: "r" (x)
	);
	return y;
}
"Поднимите мне веки!"(С)
Это uint32_t, или мне кажется?
А кто-то говорил, что не применяется!

fifo_lifo.c
Код:
/**
 * push data into the tail of a stack (like FIFO)
 * @param lst (io) - list
 * @param v (i)    - data to push
 * @return pointer to just pused node
 */
List *push_tail(List **lst, Ldata v){
	List *node;
	if(!lst) return NULL;
	if((node = (List*) Malloc(1, sizeof(List))) == 0)
		return NULL; // allocation error
	node-›data = v; // insert data
	if(!*lst){
		*lst = node;
		(*lst)-›last = node;
		return node;
	}
	(*lst)-›last-›next = node;
	(*lst)-›last = node;
	return node;
}
Это конструкция для новичков, написанная на православном классическом Си?

Ой кто-то где-то привирает безбожно!
nahimovv вне форума  
Непрочитано 29.07.2013, 21:11  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

nahimovv, там есть и принципиально другой стиль - без д'Охугена, без изысков в форматировании, без комментариев, но с магическими числами и с заменой битовых операций арифметическими:
Код:
uint8_t  led_state = LEDSTATE_OFF;
uint16_t led_blink_on = 0;
uint16_t led_blink_off = 0;
uint16_t led_ticks_on = 0;
uint16_t led_ticks_off = 0;
uint8_t  duty_cycle = 4;

uint8_t LED_GetState(){
	return led_state;
}
void LED_Duty(uint8_t duty){
	duty_cycle = duty;
	if(led_state == LEDSTATE_BLINK)
		LED_OnBlink();
}
void LED_DutyPlus(){
	if(duty_cycle ‹ 7) duty_cycle++;
...
void LED_OnBlink(){
	led_blink_off = 1 ‹‹ duty_cycle;
	led_blink_on = 0xff - led_blink_off;
	led_ticks_on = 0;
	led_ticks_off = 0;

	if(led_blink_off == 0){
		LED_On();
		return;
	}
	if(led_blink_on == 0)
	{
		LED_Off();
		return;
	}
	led_state = LEDSTATE_BLINK;
}
...

Повидимому, один код - цельнотянутый, а другой - свой...

Вот только как догадаться - где какой?
__________________
There's always more than one way to skin a cat.

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

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

Сообщение от nahimovv Посмотреть сообщение
Это кто тут вещал о вреде применения динамической памяти?
Я говорил о динамических массивах (это нечто вроде int array[size]), а malloc — вполне приличная штука.
Цитата:
Это uint32_t, или мне кажется?
Этот кусочек на ассемблере я "честно спер"
Цитата:
Это конструкция для новичков, написанная на православном классическом Си?
А там-то в чем проблема? Элементарная операция же!

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

Сообщение от tempora Посмотреть сообщение
но с магическими числами и с заменой битовых операций арифметическими:
Дык это стандартный пример из поставки дискаверины VL .
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 29.07.2013, 21:30  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

dosikus, хочешь сказать - я завысил оценку?
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 29.07.2013, 21:42  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

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

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

Сообщение от eddy Посмотреть сообщение
А там-то в чем проблема? Элементарная операция же!
Не для новичков, точно, и на STM8 точно не взлетит.
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, время: 12:22.


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