14.03.2013, 22:57
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Адрес: Полтава, UA
Сообщений: 2,450
Сказал спасибо: 376
Сказали Спасибо 1,060 раз(а) в 624 сообщении(ях)
|
Re: IAR Embedded Workbench
Я отметил их себе как новое и идем дальше, алгоритмы ведь есть не просят.
Си - надо, чтобы понять, что накидал, тот-же Атмел и не изобретать велосипедов. А я пока что, глядя на очередной сишный код, чувствую себя не в своей тарелке. От этого надо избавляться.
Сумбур неминуем... но надеюсь это скоро пройдет.
Вы вот в универе что учили, Си? А мы Паскаль. Хорошо хоть ассемблер еще дали.
__________________
Мелочи не решают главного. Они решают всё!
|
|
|
|
14.03.2013, 23:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: IAR Embedded Workbench
tempora, не ругайте меня, ну пришлось мне много писать на ассемблерах - жизнь такая была. По мне почти без разницы - что СИ править, что ASM.
Вот одно из первых детищ. http://www.parc-centre.spb.ru/prod4.htm
1993 год - 8051 внутрях. В приборе ни одной кнопки, ни одного переключателя.
На стекле кнопочки напылены (даже дорожки видны), один из первых ЖКИ матричных с контроллером на борту. При измерениях 20кГц - экран отключал - времени токо на сбор еле хватало. А потом математикии .. БПФ, корреляционные окна и чего токо не было. 8oo линий спектра секунд за 6 строилось.
Да на СИ - оно б час крутилось, а скоко бы РФок пришлось ставить,
А ТЗ - 4 часа автономной работы, а вес ограничен, а аккумуляторы если память не изменяет токо Д какие то были.
А прибор должен быть автономный - сходил, померял в нужных местах и на берег.
От первой встречи с заказчикомком до сдачи 6 месяцев.
Щас вообще проблем нет такое сотворить, а 20 лет назад ...
Мы учились по дяденьке Кнуту.
Оттуды все и идет, нынче это уже история.
Щас даже никто не задумывается ни о скорости, ни о затратах памяти.
Самое главное - эт что б любой мог взять, подправить и воткнуть.
Воткнул, не пошло - взять другое,. не пошло - следующее.
И если не повезло найти - вот тут и начинаются трудности.
Ну эт каждому свое - Кесарю - кесарево, а слесарю - слесарево.
Мне нравится иногда напильничком ...
Извиняйте уж старика (за клавой стаж 35 лет).
|
|
|
|
14.03.2013, 23:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: IAR Embedded Workbench
Сообщение от gary2007
|
алгоритмы ведь есть не просят.
|
И все равно следует иметь план и действовать в согласии с ним. Да и план-то - не любой, а соответствующий Вашим задачам. Скажем, если Вы с математикой не так часто работаете, чтобы узнать "в лицо" деление, реализованное через сдвиги, то без постоянного обращения к этой математике, Вы это скоро снова забудете. Получится, что время потрачено впустую. А если эта математика не "на кончиках пальцев", то любая переделка под другие нач. условия наверняка станет источником ошибок, в отличие от переделки выражений типа "(i+500)/1000", отсюда - ещё б ольшие бесполезные траты времени. Попробуйте всё-таки поставить себе несколько хорошо очерченных задач. Скажем, в качестве отправной точки:
Сообщение от gary2007
|
Си надо, чтобы понять, что накидал тот-же Атмел и не изобретать велосипедов.
|
Возьмите себе за правило - на первых порах, не выходить за рамки тех алгоритмов, которые попадаются в учебных материалах. Сначала вникните в то, что написано в работающем коде, повторите его, чтоб работал. Потом, в качестве закрепления материала, попробуйте несколько изменить исходные условия и решить с ними ту же задачу. Хвататься за изучение всего, что попадает в поле зрения - гибельная привычка.
Сообщение от gary2007
|
Вы вот в универе что учили, Си?
|
Я в "универе" учил шестнадцатиричные коды какой-то из ранних Электроник с вакуумными газоразрядными цифровыми индикаторами, выстроенными в "регистры" X и Y - брал листочек в клеточку, распределял 2Кб ОЗУ под программу и переменные, писал исключительно в кодах, потом вводил программу с помощью кнопок с фиксацией - набираешь из кнопок 8-4-2-1 нужную комбинацию, жмёшь "Ввод" и так - весь код и все переменные. Потом жмёшь "Старт". Через год или два получил возможность писать свои программы на кассету (более свежая Электроника - с Васиком и кассетником на борту! )
А язык ассемблера x86, Фортран, JCL, Васик, Алгол, Паскакаль, Си и все остальное - исключительно по собственной инициативе.
Сообщение от Boba_spb
|
tempora, не ругайте меня
|
Что еще за выдумки такие? Не ругаю я никого ( из присутствующих ), просто хочу помочь человеку сконцентрировать усилия на реально-доступном множестве задач. Растекаться хотелками по фрактальному древу - это же заведомый провал!
__________________
There's always more than one way to skin a cat.
Последний раз редактировалось tempora; 14.03.2013 в 23:47.
|
|
|
|
15.03.2013, 00:10
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: IAR Embedded Workbench
Знание ассемблера, конечно здорово помогает. Ты хоть понятие получаешь как это всё на самом деле работает вживую ... Ну и конечно сравнить можешь ...
Я помню ещё Д3-28 со специфическим ассемблером... )) Прилично писал на 8080, 8048, 8051... Немного на 8086... Помню по крупицам инфу искали ... Два драйвера писал ... ) Потом на AVR море... Вот в этот момент я был уверен, что никакой компилятор не приблизится ... ))
Когда я увидел ассемблер ARM7, то я понял ... "Вася, я уся" ..))
Да ещё подзабыл ... На ДВК написал 3 кроссассемблера и дизасемблера ... Комплект у меня на дискету лез ... ) Помню, там я в кодах мог писать ... собственно как и другие ... Работал и с 1801ВМ2. Кстати неплохо проц работал ... Там упущение - шина асинхронная была ... ))
Вот с Z80 никогда не работал.. Не довелось. Один проект был на i8085 (1821вм85) ... Зверь редкий ...
Последний раз редактировалось SasaVitebsk; 15.03.2013 в 00:15.
|
|
|
|
15.03.2013, 06:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: IAR Embedded Workbench
Сообщение от SasaVitebsk
|
Вот с Z80 никогда не работал
|
Кстати - "вкусный" процик.
__________________
There's always more than one way to skin a cat.
|
|
|
|
15.03.2013, 10:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Адрес: Полтава, UA
Сообщений: 2,450
Сказал спасибо: 376
Сказали Спасибо 1,060 раз(а) в 624 сообщении(ях)
|
Re: IAR Embedded Workbench
Z80 у меня был первый, на котором я пробовался в асме еще в году 93-94, пик расцвета Спектрумов. Пошел на раз-два, без особых чтений документации, которой особо то и не было. Поразило то, что аналог на бейсике работал примерно в 2 тыс. раз медленней.
__________________
Мелочи не решают главного. Они решают всё!
Последний раз редактировалось gary2007; 15.03.2013 в 10:50.
|
|
|
|
15.03.2013, 11:40
|
|
Вид на жительство
Регистрация: 18.04.2008
Сообщений: 373
Сказал спасибо: 103
Сказали Спасибо 50 раз(а) в 40 сообщении(ях)
|
Re: IAR Embedded Workbench
Как молоды мы были! (Ууууу!)
Как молоды мы были!
Как искренне любили,
Как верили в себя!
|
|
|
|
15.03.2013, 13:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: IAR Embedded Workbench
Может кому пригодится для atmegаf128 - когда то писал
PHP код:
|
// === Вход R17:R16 число 0 - 65535===
// === Вход XH:XL указатель на массив из 6 байт для строки "12345",0;
// === R17:R16 - сохранены
itoa:
push r16
push r17
push r18
push r19
push r20
ldi r20,6
add xl,r20
clr r20
adc xh,r20
st -x,r20;
ldi r19,10‹‹3
ldi r20,5
it_l0:
push r20
ldi r20,13
lsr r17
ror r16
ror r18
it_l1:
it_lc: sub r17,r19
brcc it_l2
add r17,r19
it_l2:
rol r18
rol r16
rol r17
dec r20
brne it_l1
mov r20,r17
swap r20
andi r20,15
subi r20,-'0'
st -x,r20
mov r17,r16
mov r16,r18
com r16
com r17
andi r17,0b00011111
pop r20
dec r20
brne it_l0
pop r20
pop r19
pop r18
pop r17
pop r16
ret
|
725 - тактов проца
|
|
|
|
15.03.2013, 14:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: IAR Embedded Workbench
А это самая быстрая (270 тактов)
PHP код:
|
// Вход R17:R16
// XH:XL строка
itoa:
push r16
push r17
push r18
push xl
push xh
clr r18
it_l1:
subi r16,low(10000)
sbci r17,high(10000)
brcs it_l2
inc r18
jmp it_l1
it_l2:
subi r18,-'0'
st x++,r18
clr r18
subi r16,low(-10000)
sbci r17,high(-10000)
it_l3:
subi r16,low(1000)
sbci r17,high(1000)
brcs it_l4
inc r18
jmp it_l3
it_l4:
subi r18,-'0'
st x++,r18
clr r18
subi r16,low(-1000)
sbci r17,high(-1000)
it_l5:
subi r16,low(100)
sbci r17,high(100)
brcs it_l6
inc r18
jmp it_l5
it_l6:
subi r18,-'0'
st x++,r18
clr r18
subi r16,low(-100)
it_l7:
subi r16,low(10)
brcs it_l8
inc r18
jmp it_l7
it_l8:
subi r18,-'0'
st x++,r18
subi r16,-('0'+10)
st x++,r16
clr r16
st x++,r16
pop xh
pop xl
pop r18
pop r17
pop r16
ret
|
|
|
|
|
15.03.2013, 15:41
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: IAR Embedded Workbench
Boba_spb, человек "Сей" просил, пожирней да погуще, а Вы ему снова асм подсовываете.
__________________
There's always more than one way to skin a cat.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Подниму тему WinAVR vs IAR
|
oleg110592 |
Микроконтроллеры, АЦП, память и т.д |
5 |
24.10.2015 14:06 |
Часовой пояс GMT +4, время: 15:00.
|
|