реклама на сайте
подробности

 
 
6 страниц V  « < 2 3 4 5 6 >  
Reply to this topicStart new topic
> Си для AVR
singlskv
сообщение Sep 3 2007, 20:45
Сообщение #46


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Т.Достоевский @ Sep 4 2007, 00:32) *
В чём?
Глубокоуважаемый Достоевский, раз уж Вы так радеете за программирование
на Asm, хочу предложить Вам небольшую задачку(которая кстати не очень хорошо
решается на С), необходимо поменять в байте порядок следования битов на
противоположный, т.е.
вход: b7 b6 b5 b4 b3 b2 b1 b0
выход: b0 b1 b2 b3 b4 b5 b6 b7
ну конечно нужна максимальная скорость, но без таблиц(места нетуsmile.gif)

Покажите нам пример как нужно эфективно писать проги....
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Sep 3 2007, 20:48
Сообщение #47


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Ну, ребятки, развлекли!
Go to the top of the page
 
+Quote Post
fmdost
сообщение Sep 3 2007, 20:53
Сообщение #48


Местный
***

Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606



Цитата(singlskv @ Sep 4 2007, 00:45) *
Глубокоуважаемый Достоевский, раз уж Вы так радеете за программирование
на Asm, хочу предложить Вам небольшую задачку(которая кстати не очень хорошо
решается на С), необходимо поменять в байте порядок следования битов на
противоположный, т.е.
вход: b7 b6 b5 b4 b3 b2 b1 b0
выход: b0 b1 b2 b3 b4 b5 b6 b7
ну конечно нужна максимальная скорость, но без таблиц(места нетуsmile.gif)

Покажите нам пример как нужно эфективно писать проги....

Дайте подумать!
Go to the top of the page
 
+Quote Post
singlskv
сообщение Sep 3 2007, 21:02
Сообщение #49


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Т.Достоевский @ Sep 4 2007, 00:53) *
Дайте подумать!
Да ни вапрос, до завтрашнего утра у Вас есть время smile.gif
А если серьезно ,то до завтрашнего вечера sad.gif Это максимум на обдумывание такой задачки...
Go to the top of the page
 
+Quote Post
fmdost
сообщение Sep 3 2007, 21:11
Сообщение #50


Местный
***

Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606



Цитата(singlskv @ Sep 4 2007, 01:02) *
Да ни вапрос, до завтрашнего утра у Вас есть время smile.gif
А если серьезно ,то до завтрашнего вечера sad.gif Это максимум на обдумывание такой задачки...

Дело в том что Я уже 5 лет как не пишу софт сам. Его за меня пишут люди, причём на С.

ldi r18,8 ;такой задачи не разу небыло
ldd r16,data ; код абсолютно переносимый
clr r17

m1:rol r16
ror r17
dec r18
brne m1 ; могу добавить на i51 pic16, holtec, ARM. если конечно вспомню где это всё лежит

std data,r16

Сообщение отредактировал Т.Достоевский - Sep 3 2007, 21:13
Go to the top of the page
 
+Quote Post
singlskv
сообщение Sep 3 2007, 21:21
Сообщение #51


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Т.Достоевский @ Sep 4 2007, 01:11) *
Дело в том что Я уже 5 лет как не пишу софт сам. Его за меня пишут люди, причём на С.

ldi r18,8 ;такой задачи не разу небыло
ldd r16,data ; код абсолютно переносимый
clr r17

m1:rol r16
ror r17
dec r18
brne m1 ; могу добавить на i51 pic16, holtec, ARM. если конечно вспомню где это всё лежит

std data,r16

Ну, пока результат мягко говоря не очень smile.gif
Для поднятия тонуса сообщу Вам что данная задачка решается на AVR за 13 тактов...
Go to the top of the page
 
+Quote Post
fmdost
сообщение Sep 3 2007, 21:24
Сообщение #52


Местный
***

Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606



Цитата(singlskv @ Sep 4 2007, 01:21) *
Ну, пока результат мягко говоря не очень smile.gif
Для поднятия тонуса сообщу Вам что данная задачка решается на AVR за 13 тактов...

А пример? Яж в булевых функциях не силён.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Sep 3 2007, 21:44
Сообщение #53


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Т.Достоевский @ Sep 4 2007, 01:24) *
А пример? Яж в булевых функциях не силён.
пример будет после того как Вы скажете что нужно писать на С или предоставите
общественности код для данной задачки хотябы за 15 тактов smile.gif (ШУЧУ)
Вобщем-то Вы уже раскрылись, написть быстрый код на асм Вы не очень то умеете...
Но спорите...
Я типа вроде как умею писать быстро и на С и на асм,
а код типа такой:
Код
;  13 words / 13 cycles
       ; tmp=  abcdefgh
  mov    tmp2,tmp       ; tmp2= abcdefgh
  andi   tmp2,0b01010101; tmp2= 0b0d0f0h
  andi   tmp, 0b10101010; tmp=  a0c0e0g0
  bst    tmp2,0         ;                 T=h
  lsr    tmp2           ; tmp2= 00b0d0f0
  bld    tmp2,7         ; tmp2= h0b0d0f0
  lsl    tmp            ; tmp=  0c0e0g00  C=a
  adc    tmp, tmp2      ; tmp=  hcbedgfa
  mov    tmp2,tmp       ; tmp2= hcbedgfa
  andi   tmp2,0b01100110; tmp2= 0cb00gf0
  swap   tmp2           ; tmp2= 0gf00cb0
  andi   tmp, 0b10011001; tmp=  h00ed00a
  add    tmp, tmp2      ; tmp=  hgfedcba
Go to the top of the page
 
+Quote Post
fmdost
сообщение Sep 3 2007, 21:56
Сообщение #54


Местный
***

Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606



Цитата(singlskv @ Sep 4 2007, 01:44) *
пример будет после того как Вы скажете что нужно писать на С или предоставите
общественности код для данной задачки хотябы за 15 тактов smile.gif (ШУЧУ)
Вобщем-то Вы уже раскрылись, написть быстрый код на асм Вы не очень то умеете...
Но спорите...
Я типа вроде как умею писать быстро и на С и на асм,
а код типа такой:
Код
;  13 words / 13 cycles
     ; tmp=  abcdefgh
  mov    tmp2,tmp     ; tmp2= abcdefgh
  andi   tmp2,0b01010101; tmp2= 0b0d0f0h
  andi   tmp, 0b10101010; tmp=  a0c0e0g0
  bst    tmp2,0    ;                 T=h
  lsr    tmp2         ; tmp2= 00b0d0f0
  bld    tmp2,7    ; tmp2= h0b0d0f0
  lsl    tmp    ; tmp=  0c0e0g00  C=a
  adc    tmp, tmp2    ; tmp=  hcbedgfa
  mov    tmp2,tmp     ; tmp2= hcbedgfa
  andi   tmp2,0b01100110; tmp2= 0cb00gf0
  swap   tmp2         ; tmp2= 0gf00cb0
  andi   tmp, 0b10011001; tmp=  h00ed00a
  add    tmp, tmp2    ; tmp=  hgfedcba

Сами придумали? Если да, то этот же алгоритм должен быть на С той же длинны и времени! Но это уже будет не про С.

Ещё раз повторю. Ни спорю Я про С. Я говорю что компиляторы ещё долго будут полное Г.(IAR) Это основной мой матифф!

ЗЫ. Этот код и на паскале наверное такой-же по времени выйдет.

Сообщение отредактировал Т.Достоевский - Sep 3 2007, 21:58
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 3 2007, 22:04
Сообщение #55


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Т.Достоевский @ Sep 4 2007, 00:56) *
этот же алгоритм должен быть на С той же длинны и времени!
...........
Я говорю что компиляторы ещё долго будут полное Г.(IAR)
УпИсаться. И такая же каша у него в голове? 01.gif


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
singlskv
сообщение Sep 3 2007, 22:14
Сообщение #56


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Т.Достоевский @ Sep 4 2007, 01:56) *
Сами придумали? Если да, то этот же алгоритм должен быть на С той же длинны и времени! Но это уже будет не про С.
Сам придумал, а Вы не смогли smile.gif
Ничего он Вам не должен(алгоритм на С)если Вы не можете написать сами так на асемблере,
то какого хрена Вы сравниваете его с С? Большинство алгоритмов я могу
написать на C так что размер/скорость выполнеиния не будут отличаться от ASM более чем на
10-15%
Цитата
Ещё раз повторю. Ни спорю Я про С. Я говорю что компиляторы ещё долго будут полное Г.(IAR) Это основной мой матифф!
Ok, я чуть подумаю какую Вам задачку подогнать,
условие такое, есть набор выходных данных в памяти, есть набор выходных, есть некоторое
преобразование входных в выходные , вы пишите на асм я на С, готовы ?
Go to the top of the page
 
+Quote Post
fmdost
сообщение Sep 3 2007, 22:44
Сообщение #57


Местный
***

Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606



Цитата(singlskv @ Sep 4 2007, 02:14) *
Ok, я чуть подумаю какую Вам задачку подогнать,
условие такое, есть набор выходных данных в памяти, есть набор выходных, есть некоторое
преобразование входных в выходные , вы пишите на асм я на С, готовы ?

Нет.
Неужели вы думаете что у меня нет на руках примеров, и Я голословно что то утверждаю?
Когда мой работники не смогли в IARе впихнуть в мегу 48 то что у меня поместилось в 90с1200, это всё и выплыло. Посмотрите мои посты на сахаре и сдесь про прерывания на С. Сам Я вообше не програмист и образование у меня 5 классов (без иронии). Там были приведены примеры от програмистов. 5-и кратное увеличение кода по сравнению с асм это цветочки.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Sep 4 2007, 01:11
Сообщение #58


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(Т.Достоевский @ Sep 4 2007, 07:44) *
Нет.
Неужели вы думаете что у меня нет на руках примеров, и Я голословно что то утверждаю?

Пока получается так.
Цитата(Т.Достоевский @ Sep 4 2007, 07:44) *
Нет.
Неужели вы думаете что у меня нет на руках примеров, и Я голословно что то утверждаю?
Когда мой работники не смогли в IARе впихнуть в мегу 48 то что у меня поместилось в 90с1200, это всё и выплыло.

А переносимость кода? А сроки? Вы не смогли с простой задачей справиться на асме, хотя из ваших постов следует, что Вы им владеете)
Цитата(Т.Достоевский @ Sep 4 2007, 07:44) *
Сам Я вообше не програмист и образование у меня 5 классов (без иронии).

Это отлично видно, что Вы не программист. Только противоречие получается: Вы не программист, но спорите о преимуцествах ассемблера (которым Вы не очень-то и владеете) против Си.
Да и вообще, утверждаете что 5 лет не программировали, и также спорите. Да за 5 лет столько воды утекло и многое изменилось в мире embedded.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
zcost
сообщение Sep 4 2007, 04:07
Сообщение #59


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 12-04-07
Пользователь №: 26 979



Есть еще аргумент. Недаром архитектура микроконтроллеров как у атмела, так и у микрочипа становится Си ориентированной. Кстати код на С++ у IAR по компактности умещается в те же 10-15% в сравнении с асмом.
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение Sep 4 2007, 09:29
Сообщение #60


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



Цитата(Т.Достоевский @ Sep 4 2007, 03:44) *
Нет.
Неужели вы думаете что у меня нет на руках примеров, и Я голословно что то утверждаю?
Когда мой работники не смогли в IARе впихнуть в мегу 48 то что у меня поместилось в 90с1200, это всё и выплыло. Посмотрите мои посты на сахаре и сдесь про прерывания на С. Сам Я вообше не програмист и образование у меня 5 классов (без иронии). Там были приведены примеры от програмистов. 5-и кратное увеличение кода по сравнению с асм это цветочки.

Я вам серьезно советую избавиться от таких программистов, поскольку судя по всему не умеют пользоваться инструментом. Потому как раздуть код это надо постараться, я вот в некоторых программах даже full printf (ужас!) применяю и даже место остается. А я веть тоже не программист, а схемотехник и при написании программ иногда в учебник по С заглядываю smile.gif. А так, если не можете пользоваться инструментом, то нечего на него обижаться smile.gif


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post

6 страниц V  « < 2 3 4 5 6 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 09:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01501 секунд с 7
ELECTRONIX ©2004-2016