Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

какъв език за програмиране да науча
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=6168
Страница 1 от 2

Автор:  NEKUSA4 [ Нед Окт 12, 2008 11:29 am ]
Заглавие:  какъв език за програмиране да науча

Здравейте
Може би не съм за този форум , но се надявам някой да ми помогне или да ме ориентира от къде да започна.
С две думи искам да се науча да пиша програми за контролери но единственото което знам за езиците на които се пишат тези програми е , че те са някакви машинни и толкова.
Правил съм много схеми с контролери най вече пик-ове но все ползвам готови програми за тях и не мога да ги коригирам за това искам да пробвам да науча някой език .

Автор:  lz [ Нед Окт 12, 2008 12:22 pm ]
Заглавие: 

Езикът за програмиране няма нищо общо с това дали можеш или не да програмираш. Той е само средство със своите особености.

Автор:  NEKUSA4 [ Нед Окт 12, 2008 12:45 pm ]
Заглавие: 

ок а в такъв случай какво триябва да знам за да направя програма за микроконтролер

Автор:  lz [ Нед Окт 12, 2008 12:50 pm ]
Заглавие: 

Като за начало, разгледай темите от раздел "Академия" на форума.

Автор:  NEKUSA4 [ Нед Окт 12, 2008 1:54 pm ]
Заглавие: 

Ако съм разбрал правилно излиза , че за да се направи програма за контролер трябва да се знае и доста за самия контролер , така ли е или съм в голяма заблуда още
:oops:

Автор:  lz [ Нед Окт 12, 2008 2:29 pm ]
Заглавие: 

Правилно си разбрал, давай натам :)

Автор:  NEKUSA4 [ Нед Окт 12, 2008 2:45 pm ]
Заглавие: 

Ами сиа пък сигурно съм досаден вече ама това няма ли го написано в някой буквар примерно
P.S. за да мога да го чета и докато съм на работа

Автор:  Ки4о [ Нед Окт 12, 2008 6:04 pm ]
Заглавие: 

Буквара е Кериган и Ритчи - имам в предвид С. Аз там се обръщам за справка или в хелпа на съответния компилатор или питам.Необходимите неща дето ти трябват са:
- книгата за С
- достъп до форума - има много дискутирани теми а и винаги може да питаш
- компилатора/средата за развой
- описанието на контролера - който си избрал
- програматор/дебъгер за контролера
- платка на която го има контролера или усттройство на което ще си тестваш програмата
- добро осветление и меки гащи - от много стоене над книгите заболява четирибуквието ;)
Така че смело скачай в джаза :)

Автор:  VANK [ Нед Окт 12, 2008 8:31 pm ]
Заглавие: 

Аз ще ти препоръчам "С практически самоучител" Хърбърт Шилдт - все още се намира из книжарниците. Многоразбираемо е написан.

Автор:  NEKUSA4 [ Нед Окт 12, 2008 9:06 pm ]
Заглавие: 

Мноо благодарско за отделеното внимание , ама сега въпросите започват направо да напират .
Първо искам до попитам има ли някаква разлика между програматор и дебъгер ?
8O

Автор:  ToHu [ Нед Окт 12, 2008 11:46 pm ]
Заглавие: 

Има .. не малка, простия програматор просто програмира чипа, всеки чип може да бъде програмиран. Дебъгера се изпозлва за дебъг, т.е. с него може да проследява как с еизпълнява това което си сътворил и да намираш грешки в него, обикновенно дебъгераможе да играе и роля на програматор. Различните контролери имат различни дебъгери, и още по-различни възможности за дебъг, това зависи както от архитектурата, така и от това какво е предвидил производителя за целта, а и не на последно място от развойната среда в която работиш.

Това по-въпроса за дебъгер и програматори ... за ученето .. какво да ти кажа, всеки може да напише софтуер, до колко е добър зависи от няколко неща, на част от тях можеш да повлияеш а на част от тях не можеш. Можеш да изучиш асемблера на конторлера, може да изучиш С-то, да се научиш да пишеш четимо, може да разучиш и самия контролер за който работиш /даже защото много хора не го правят напоследък/. Но колко ефективен е е кодът ти, и колко надежден зависи от неща които обикновенно не можеш да повлияеш, най-вече зависи от теб самия, от характера и начина на мислене, но те са формирани доста отдавна и няма начин да промениш. Това може би ще прозвучи че не всеки става за това ... на много хора това не им харесва но е точно така, и Иван и Драган може да напишат работеща програма решаваща задача Х но дали и двамата ще го направят достатъчно ефективно .... напоследък много се залага на писане на високо ниво, С, С++ та и нагоре. Много хора изпозлват развойни среди на които едва ли не им пишеш със думи, аз много ги харесвам тия среди ако трябва да ми създадът проекта и вместо мен генерират стандартните хедъри, ако може и I/O да инициализират и сетингите на самия чип са добре дошли, но до там е за мен ползата от тях. Има голяма разлика да ползваш някаква С библиотека която виждаш, знаеш как работи и какво прави, а друго да напиеш някава функция като "изпиши колко е часът на дисплея и отиди да спиш" и да нямаш никава идея нито как работи дисплея, нито в каквъ формат се предават данните нито как.
Та колкото и някои да са против, аз бих ти препоръчал да се хванеш с документацията на чипа, да му научиш асемблера, и да се опиташ да направиш няколко прости асемблерски програмки, а не да правиш hello wolrd на С ... след това може и на С да минеш, много е полезно да гледаш генерираният код на прости програмки за да схванеш някои основни неща. Разбира се много зависи и какъв компилатор ползваш с какви оптимизации тъй като някои генерират практически нечитаем асемблерски код, освен ако не си гений

Автор:  NEKUSA4 [ Пон Окт 13, 2008 8:32 pm ]
Заглавие: 

Относно това което ToHu ми пише вече наистина се убеждавам че си мнооо прав защото днес попрочетох някои подробности за програмирането на AVR контролери и ми се поизясниха някои неща , и също така ми се изясни колко далеч съм още от писането на кодове за контролери.
Аз лично мисля да се пробвам с асмблер макар да нямам понятие от него и въпреки , че повечето хора препоръчват C.
Ще почета и след това първото нещо което искам е да взема един готов код по възможност много прост и да го тествам с някаква програма може би симулатор не знам още защото не съм толкова на вътре в нещата и да проследя как и кога точно протича всяка част от кода и за това сега молбата ми е ако съм на прав път кажете ми за някаква такава програма или ако бъркам ме кажете къде :)

Автор:  ToHu [ Пон Окт 13, 2008 11:23 pm ]
Заглавие: 

Ами на прав път си, по прав от тоя няма. Аз бих ти препоръчал да тестваш в-у истински контролер, но като за начало може би и протеуса ще ти свърши работа. Основният проблем обачена повечето нчинаещи е правилното конфигуриране на контролера за да тръгне, а точно това в протеуса не можеш да научиш. Там както и да го конфигурираш обикновенно тръгва поне до някъде. Но поздравления че се заемаш с асемблер, и ако ще ползваш за начало софтуерен симулатор, дали да не започнеш от нещо по .... стандартно не е точната дума, особенно що се касае за асемблер, но визирам някой от по старите контролери HC11 да речем, или пък стандартното х51 ядро. Това само си го мисля де, може би не е най-добрата идея.

Автор:  ji4ka [ Пон Окт 13, 2008 11:58 pm ]
Заглавие: 

NEKUSA4 написа:
...сега молбата ми е ако съм на прав път кажете ми за някаква такава програма или ако бъркам ме кажете къде :)

Ако искаш по-конкретна помощ кажи на какво ниво си с техниката. Запояваш ли с поялник? Пограмирал ли си на PC? Разбираш ли технически английски? Имаш ли някакво конкретно устройство което искаш да си направиш?
Според мене е задължително да научиш поне един асемблер. Препоръчвам ти PIC16 защото е най-лесен, около 20 инструкции, а и ще си поупражниш двоичната аритметика. От там нататъка другите контролери са по-сложни но общо взето "схемата" е една и съща. Изтегли си даташит-а на pic16f84 - там има всичко, вкл. и препратки към програми и програматори които да ползваш, повечето безплатни.
Естествено ,може да си избереш и друг контролер ,но идеята е същата - теглиш даташита и четеш, ровиш се по сайта на производителя, търсиш в гугъла и т.н. Това е началото, по-нататък ако не се опраяш сам значи не е за тебе тая работа. :wink:

Автор:  maker_1 [ Вто Окт 14, 2008 8:31 am ]
Заглавие: 

VANK написа:
Аз ще ти препоръчам "С практически самоучител" Хърбърт Шилдт - все още се намира из книжарниците. Многоразбираемо е написан.

Напълно съм съгласен.Една от добрите книги за стартиране в програмирането на C и C++ .

Страница 1 от 2 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/