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

Подходящ език за начинаещи
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=2623
Страница 1 от 4

Автор:  plameniv [ Нед Юли 09, 2006 9:08 pm ]
Заглавие:  Подходящ език за начинаещи

Реконструктор написа:
BrainStorm написа:
Стига бре хора .. какво толкова сте се наплашили от Ц'то ??????? Немога да ви разбера ... защо го смятате за толкова сложен ... езика е изключително елегантен и удобен a синтаксиса му супер нагледен !

Земи си една хубава книжка и го научи :
http://www.soft-press.com/srchead.html? ... ewbook=101 - това е най-доброто на пазара ;)


C-то е трудно за човек, който не се е занимавал с програмиране. Поне 90% от професионалните програмисти са започвали с Бейсик и/или Паскал - тези езици тъкмо за това са измислени, да се учи човек. Аз лично, бих препоръчал да се почне с Бейсик или Паскал за PC, и после да се премине към МК. Но тези, които нямат търпение, могат да пробват да започнат да пишат направо за МК. Според мен, C за МК е несмилаемо за един абс. начинаещ, той лесно би се разочаровал и би изоставил програмирането.
За това е и тази тема - да се разяснява на начинаещите за разните вариации на Бейсик за различни микроконтролери. Моля, придържайте се към нея.

Бих казал че за да знаеш какво правиш началото на всичко е асемблер. Почнеш ли от него всичко после е по лесно.
Изтегля се последната версия на MPLAB от сайта на microchip и си почваш с примерчета с свой програми и т.н.
Дори за съвсем начинаещи в сайта на младконструктор има вече 2 книги за пик с доста добре обяснени примери и точно как да се работи с MPLAB .
http://www.mladkonstruktor.bg

Позволих си да пренеса дискусията в нова тема, мисля, че ще е полезно за много хора
Реконструктор

Автор:  ToHu [ Пон Юли 10, 2006 12:18 am ]
Заглавие: 

Реконструктор, не съм съвсем съгласен с теб, точно ако човек е начинаещ каква толкова е разликата м-у С и бейсик, особенно при микроконтролери. Там разликите са основно синтактични, това че С-то позволява доста по голяма гъвкавост не го прави по сложно от един бейсик, или пък паскал. И лично аз не бих препоръчал някой да се хване първо с РС а селд това с контролери, РС създава много вредни навици според мен. Най-добре е да се хване някой по-прост микроконтролер и асемблер, и едва след това да се минава на език от високо ниво, а дали ще е С, Бейсик или Паскал няма никакво значение за усвояването му според мен. Еднакво бързо ще направиш мигащ диод или комуникация както на С така и на Бейсик ако никога преди това не си ги ползвал. Дори според мен ако човек се е запознал с процесора дстатъчно за да му е ясно как работят нещата, то С ще му е мнго по удобно. Има много случаи в които нчинаещи се забатачват със сложни и не винаги рбатещи неща .. като толкова любимия printf примерно, да понякога върши супер работа, ако ти трябва форматиран изход ..... но всеки писал на асемблер сигурно ще открие първо командата putc .... или директно ще си пише байтое в буфера ....и ще си организира нещата така както и на асемблер. Изобщо РС програмирането и това за микроконтролери, особенно нискоресурсни мисля че нямат много общо, въпреки че С ато С е същото .... аз мисля че не трябва двете неща да се бъркат. Добрия програмист за РС трябва и да е добър за микроконтролери ... но това вече май изобщо не е вярно, защото малко останаха РС програмистите които изобщ имат идея от асемблер, а много от тях се имат за добри....

Автор:  rumen [ Пон Юли 10, 2006 9:09 am ]
Заглавие: 

Баси на лични съобщения ли ще си обсъждаме Протона?
Опомнете се бе хора вие Цензура ли поставяте комитет за защита на С ли сте какво?
Ако нямате какво правите не го правете в тази тема.
Пишещите на Протон не смеят да се обадят тука.

Автор:  relsys [ Пон Юли 10, 2006 9:28 am ]
Заглавие: 

Тони, аз пък не съм много съгласен с тебе....
Не виждам по какъв начин, някой който си няма представа от логиката в програмирането ще изкара нещо смислено и добро на асемблер. Пък и я да видим кой от нас не е почнал с бейсика за 82? А относно съвременния бейсик, той си има структура както при С и паскал, така че не е толкова важно на какъв език ще пишеш, а това да можеш да пишеш чист и разчитаем код. .... а и няма лоши компилатори, има лоши програмисти.......... :lol:

Автор:  evc [ Пон Юли 10, 2006 10:43 am ]
Заглавие: 

ЗАДЪЛЖИТЕЛНО трябва до се почне на асемблер! И за РС дори! За да се разбере какво е това регистър, акумулатор, стек, стек_поинтър и т.н. За да се схване самата логика на работа на машината. Не може без да се знае таблицата за умножение, да се учи висша математика! Иначе се получава това, което се наблюдава все по-масово напоследък - "защо да оптимизираме кода, след като ресурсите непрекъснато се увеличават?" и после ХР - 1Gb, Vista - 4Gb ...

Автор:  Nico [ Пон Юли 10, 2006 11:03 am ]
Заглавие: 

relsys написа:
Тони, аз пък не съм много съгласен с тебе....
Не виждам по какъв начин, някой който си няма представа от логиката в програмирането ще изкара нещо смислено и добро на асемблер. Пък и я да видим кой от нас не е почнал с бейсика за 82? А относно съвременния бейсик, той си има структура както при С и паскал, така че не е толкова важно на какъв език ще пишеш, а това да можеш да пишеш чист и разчитаем код. .... а и няма лоши компилатори, има лоши програмисти.......... :lol:

=D> :supz: едно по различно мнение, ами точно така които го може и с теслата ще го направи

Автор:  relsys [ Пон Юли 10, 2006 1:17 pm ]
Заглавие: 

evc написа:
ЗАДЪЛЖИТЕЛНО трябва до се почне на асемблер! И за РС дори! За да се разбере какво е това регистър, акумулатор, стек, стек_поинтър и т.н. За да се схване самата логика на работа на машината. Не може без да се знае таблицата за умножение, да се учи висша математика! Иначе се получава това, което се наблюдава все по-масово напоследък - "защо да оптимизираме кода, след като ресурсите непрекъснато се увеличават?" и после ХР - 1Gb, Vista - 4Gb ...


1. Не смятам, че на едно дете в 3-4 клас трябва да му пълниш главата с що е това STACK FILO, щото едно че няма да те разбере, ами и със сигурност ще останат трайни увреждания в главата му. /доколкото си спомням, доказано е, че мисля КОБОЛ води увреждания/.

2. ASM e висшата математика, не С. Обикновено самата логика на работа на машината няма нищо общо с асемблера и. => големия прогрес на М$

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

4. Най - общо казано ако до 20 годишна възраст не си се научил да програмираш, то това вероятно няма никога да стане.

5. Мисля, че на всеки от нас първо са му показали транзистор, и са му казали как работи, а чак след това се стига до физика на кристалите

6. и т.н.

Автор:  Predator_MF [ Пон Юли 10, 2006 1:31 pm ]
Заглавие: 

Почнахте много насериозно да вземате цялата тая работа с Бейсика, тука не сме 4-ти клас, не сме и в средно училище, що сравнявате недоразвит мозък на хлапе 4-ти клас с вас. Едно време като ми тъпчеха главата с литература обема от информация там ми се струваше огромен, сега мога да изчета 500 страници PDF без да ме заболи глава...
Езика C за миктроконтролери изключително много се различава от C за PC, най-малко заради разликата в ресурсите при двете системи. Същото важи и за ASM. Като отвориш хелпа на CCS ти трябва една вечер да го изчетеш целия и дори да не си пипал C през живота си най-малко ще знаеш да разчиташ код...ако отвориш книга за C (недай си боже MSDN) можеш със месеци да се луташ. Същото за ASM, отвори datasheet на PIC16F84, за една вечер ще знаеш да разчиташ ASM заради 37-те му инструкции от които само 10 се ползват, а книга за ASM за Intel-ски процесор ще четеш със седмици.

PS: Няма да ви се меся повече в темата, писал съм на Pascal и Basic както за PC, така и за микроконтролери, но развитието ми започна като се хванах със C...освен всичко C ми беше почти непознат като почнах CCS за PIC и оттам точно тръгна всичко, всеки има право да си ползва най-удобния инструмент, не се гледа обаче сериозно на хората които завиват болт с рапидна глава с правата отверка

Автор:  Реконструктор [ Пон Юли 10, 2006 6:01 pm ]
Заглавие: 

ToHu написа:
Реконструктор, не съм съвсем съгласен с теб, точно ако човек е начинаещ каква толкова е разликата м-у С и бейсик, особенно при микроконтролери. Там разликите са основно синтактични, това че С-то позволява доста по голяма гъвкавост не го прави по сложно от един бейсик, или пък паскал. И лично аз не бих препоръчал някой да се хване първо с РС а селд това с контролери, РС създава много вредни навици според мен. Най-добре е да се хване някой по-прост микроконтролер и асемблер, и едва след това да се минава на език от високо ниво, а дали ще е С, Бейсик или Паскал няма никакво значение за усвояването му според мен. Еднакво бързо ще направиш мигащ диод или комуникация както на С така и на Бейсик ако никога преди това не си ги ползвал. Дори според мен ако човек се е запознал с процесора дстатъчно за да му е ясно как работят нещата, то С ще му е мнго по удобно. Има много случаи в които нчинаещи се забатачват със сложни и не винаги рбатещи неща .. като толкова любимия printf примерно, да понякога върши супер работа, ако ти трябва форматиран изход ..... но всеки писал на асемблер сигурно ще открие първо командата putc .... или директно ще си пише байтое в буфера ....и ще си организира нещата така както и на асемблер. Изобщо РС програмирането и това за микроконтролери, особенно нискоресурсни мисля че нямат много общо, въпреки че С ато С е същото .... аз мисля че не трябва двете неща да се бъркат. Добрия програмист за РС трябва и да е добър за микроконтролери ... но това вече май изобщо не е вярно, защото малко останаха РС програмистите които изобщ имат идея от асемблер, а много от тях се имат за добри....


Батка, както добре отбелязаха по-долу, добре е първо да разбереш как работи транзистора и едва след това да учиш физиката на кристалите вътре. Програмирането далеч не е само клатене на портове и разни аритметични сметки. Добре е човек да придобие представа за основните неща в информатиката - структури от данни, масиви - както линейни, така и нелинейни, асоциативни, стрингове, свързани списъци и още сума ти неща, да не изреждам. C-то е много базов език и работата с всичко това е неразбираема за повечето начинаещи. Докато в езици като Паскал и Бейсик, много от нещата са на готово, на ниво компилатор. Далеч по-лесно и ясно е за един начинаещ да напише просто string1 = string2 + "some text" + string3, отколкото да се занимава с цялата верига от ANSI C ф-ии за манипулация на стрингове и управление на паметта, за да постигне същото в C. Чак след като е наясно с първото, може да премине към осъзнаване на второто. На час по лъжичка.
И защо ми се струва, че го предъвкваме това за 10-ти път?

Автор:  ToHu [ Вто Юли 11, 2006 1:29 am ]
Заглавие: 

Ами аз пък с това не съм съгласен но както и да е, тук не говорим за РС програмисти, ти май не разбира това, човек който не знае какво представлява стринга мисля изобщо не е стигнал ниво да пише аквото и да било на С или някой друг език. който разбира, ако не знае функциите на С преди да ги е науил , ще си ги е наисал 10 пъти. Това са ембедед решения, много пъти софтуера като софтуер е най лесната част, много по често този който пише трябва да е наясно как точно трябва да работи този софтуер, как да му работи алгоритъма, съобразявайки си с поставената задача и хардуерните възможности на чипа, а не да пита ама защо трябва да пращам байт повече по 485 или др подобни. На запад се оптват да разграничават писането на фримуер от правенето на хардуера, не знам до клко успешно доколко не . и в БГ се опитват, нещата са свързани, а от там неминуемо трябва да има както познаване на хардуера, така и достъп до него. Според мен след асемблера, най-добри възможности за това дава С. Иначе става като моето писане за РС, да ползвам бюлдер, и честно казано нито има идея как се създава прозорец, нито как работят 90% от нещата, не ми и трябва, защото аз не мисля че съм РС програмист. В контролера прозорци не ми трябват, за тая работа си има програмисти като тебе. Не знам защо програмистите за РС не се опитат да приемат факта че писането за микроконтролер е повече вързано с хардуер. Когато са писали под дос, може би не е било така, тия времена отдавна са минали.
Това че ти пишеш за микроконтролери, и с еопитваш а може би не, да си промениш начин на мислене и писане, не значи че всеки ще го направи. За човек който иска да се занимава с ембедед решения, да почва с РС програмиране не мисля че е най добрата идея. Типове данни и др такива могат да се научат акто на ембедеда така и на РС, разлика няма.

Автор:  [ Вто Юли 11, 2006 1:55 am ]
Заглавие: 

Нема да спорите, най-подходящи за начинаещи е Фортран, според мен де. 8)

Автор:  Реконструктор [ Вто Юли 11, 2006 11:25 am ]
Заглавие: 

ToHu написа:
Типове данни и др такива могат да се научат акто на ембедеда така и на РС, разлика няма.


А така, накрая си каза всичко. ;) Точно така, информатиката е обща за всички ЕИМ, без значение от платформата. Точно поради тая причина, един начинаещ трябва да е улеснен максимално при обучението си. Иначе имаш твърде опростени разбирания за ембедед програмирането, аз ти обясних, че програмирането като цяло не е само клатене на портове и аритметика. Наистина, поне 90% от приложенията в ембедед се свеждат точно до това, само дето остават едни 10%, които не са по силите на един типичен ембедед хардуеристопрограмист.

Автор:  ToHu [ Вто Юли 11, 2006 11:49 am ]
Заглавие: 

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

Автор:  Zdrav [ Вто Юли 11, 2006 12:02 pm ]
Заглавие: 

Реконструктор написа:
..., един начинаещ трябва да е улеснен максимално при обучението си.

Защо???
В наши дни битува мнението че обучението трябва да е максимално улеснено и широко достъпно. Най-добре ако е под формата на игра. Леко и неусетно ставаш специалист.
Ставаш ама не. Ставаш едно леке.
Има хора които е по-добре никога да не бяха се научавали да пишат камо ли да пишат програми.
Светът щеше да е друг. Справка например нашенската преса.
Трябва да има воля, самодисциплина и организираност. Трябва да има иглени уши за тези които искат да овладеят каквато и да е по-сложна материя.

И се оплаквате после защо не се ценял високо-интелигентния ни труд.

...

Автор:  HCL [ Вто Юли 11, 2006 1:56 pm ]
Заглавие: 

Цитат:
5. Мисля, че на всеки от нас първо са му показали транзистор, и са му казали как работи, а чак след това се стига до физика на кристалите

Цитат:
Батка, както добре отбелязаха по-долу, добре е първо да разбереш как работи транзистора и едва след това да учиш физиката на кристалите вътре.


:D Много ви е странна логиката според мен. Realsys за пьрви пьт видях транзистор (и преди може би сьм виждал, но не сьм си имал и идея какво представлява) след 2 месаца курс "Основи на полупроводниковата Физика" и мисля, че това е едно логично следствие.
Моята гледна точка е, че ако ще се занимаваш с embedded приложения преди дори да помислиш за компилатор трябва да си наясно с някои основни неща като например как функтионира един ОУ, как функционира един NAND гейт (и под това нямам предвид една 4 редова таблица), което логично води до основите на полупроводниковата Физика.
Според мен един специалист се гради от А Б и В. Не е необходимо да се задьлбава много в тези основи, но без тях не може. В този ред на мисли Асемблера не би следвало да се пренебрегва, това до колко да се занимава с него човек е вьпрос на личен избор и ориентация.
Все пак повечето от вас вече са минали нивото на "начално професионално образoвание" и като давате акьл на начинаещите, имайте предвид, че те не виждат нещата така ясно като вас.
Хубаво е човек да може C, но при embedded приложенията е важно и да е наясно какво точно програмира. Най-малкото поради факта, че повечето приложения в тази област се занимават с отговорни задачи. Така, че идеята почни на С и забрави Асемблера според мен не е добра. Още повече, че за мен C-то не е от най-разбираемите и удачни езици като за начинаещ.

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