Оптимальный старт в программировании МК на С
29.07.2013, 20:42
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от eddy
|
|
слив засчитан.
|
Да уж давно! Не заметил? Еще несколько сливов показать?
__________________
There's always more than one way to skin a cat.
|
|
|
|
29.07.2013, 20:49
|
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,427
Сказал спасибо: 0
Сказали Спасибо 381 раз(а) в 251 сообщении(ях)
|
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;
} |
Это конструкция для новичков, написанная на православном классическом Си?
Ой кто-то где-то привирает безбожно!
|
|
|
|
29.07.2013, 21:11
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
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.
|
|
|
|
29.07.2013, 21:20
|
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,427
Сказал спасибо: 0
Сказали Спасибо 381 раз(а) в 251 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Да, "Все мы грешны, всё тянем из инета!"(С)
|
|
|
|
29.07.2013, 21:24
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от nahimovv
|
Это кто тут вещал о вреде применения динамической памяти?
|
Я говорил о динамических массивах (это нечто вроде int array[size]), а malloc — вполне приличная штука.
|
Цитата:
|
Это uint32_t, или мне кажется?
|
Этот кусочек на ассемблере я "честно спер"
|
Цитата:
|
|
Это конструкция для новичков, написанная на православном классическом Си?
|
А там-то в чем проблема? Элементарная операция же!
Сообщение от tempora
|
|
Повидимому, один код - цельнотянутый, а другой - свой...
|
Все честно скоммунизжено ☺
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
|
|
|
|
29.07.2013, 21:27
|
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от tempora
|
|
но с магическими числами и с заменой битовых операций арифметическими:
|
Дык это стандартный пример из поставки дискаверины VL .
__________________
Осторожно , злой кот
|
|
|
|
29.07.2013, 21:30
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
dosikus, хочешь сказать - я завысил оценку?
__________________
There's always more than one way to skin a cat.
|
|
|
|
29.07.2013, 21:42
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от tempora
|
dosikus, хочешь сказать - я завысил оценку?
|
Нет, ты все точно сказал. А я слился по полной программе.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
|
|
|
|
29.07.2013, 21:46
|
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,427
Сказал спасибо: 0
Сказали Спасибо 381 раз(а) в 251 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Та ладно, не принимай так близко к сердцу.
|
|
|
|
29.07.2013, 21:49
|
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,427
Сказал спасибо: 0
Сказали Спасибо 381 раз(а) в 251 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от eddy
|
|
А там-то в чем проблема? Элементарная операция же!
|
Не для новичков, точно, и на STM8 точно не взлетит.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:22.
|
|