Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Choosing microcontrollers or software programming

Status
Not open for further replies.

TheKnight

Junior Member level 2
Joined
Jan 9, 2011
Messages
24
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,283
Activity points
1,456
Hey all.

I have a doubt. I've been searching and didn't find any answer. So here is my question. I have many resources for learning basic electronics, and microcontrollers, and I do realize that for microcontrollers a programming language is required.
So, also a programming language can be used for another purpose. Like software development and many other things. So my question would be:
What should I learn.. The microcontrollers or the programming language but not for microcontrollers but for like software development etc.. I really don't know if I explained very well but I really need an answer.. I want to start learning as soon as I can but can't decide which is better, or has a future.. Please help.
Thanks a lot.
 

Maybe the correct advice depends on your future aspirations, so we can only guess what to suggest to you.

Other people will have different opinions, but I am quite clear about this from my own point of view:
It is very helpful to have good theoretical and practical experience in electronic circuits, electrical power distribution, processor design, assembly language programming and computer languages.
(You might want to add automotive electrics, commercial software, process control, commercial radio broadcasting, military and aerospace specifications, encryption and consumer product repairs!)
The more you know and the more you have experience working with, then the easier it becomes to solve problems and achive good results. It also helps you to understand when you really will need someone else's help!
 
Yes, I am aware that it is very helpful to know theoretical and practical electronics.. But like I said, I started with microelectronics which also needs a programming language.. But in here it has a different purpose. On the other side, talking about pc programming, I think there the programming languages are used like for developing softwares. So, is your suggestion to learn them both? Because in some way they mix each other. It's basically the same just minor differences.. Thank you.
 

If you want to learn how to use microcontrollers, you must be able to program them. My advice would be to pick a microcontroller for which there is a high language compiler or interpreter available as part of a development system. That way you can learn a language such as C or BASIC that might be usefull for other applications. Keep in mind that the langauage available for the microcontroller will likely be a subset of the full language. Visit microchip.com for a description of their "pic" line of controllers, which have C compilers available. Also, visit parallax.com for therir line of "Basic Stamp" microcontrolllers which have built-in BASIC interpreters.
 

Hi,

I think what you mean is whether to learn a programming language for microcontroller or for software development. Actually the concept of programming is quite similar across all. Maybe what you actually mean is that whether to learn low level programming or high level programming. It depends on your interest in hardware electronics or computer system.

example: to build a sms modem,
Those interested in low level programming might be people who are interested in building circuit & microcontroller, working with bits & bytes to make things work.
Those who are interested in high level programming prefer to buy a standard sms modem product, or even better a device with library or sdk support. Or maybe you don't even like to touch any hardware at all.

It depends on you interest.
 
Siongboon - You definetily got the point. That's the exact doubt that I have. Both are very amaizing to me. Um, I want to ask probably the last question of this thread because yes it depends on the interest. As you say, the programming language is included in both mentioned. But my question would be, I pick microcontrollers. Can the knowledge with microcontrollers somehow be used with software programming. Or only the programming language knowledge to be used if want to learn something new like software programming.. ? Are they two connected? I really need this but I think I have decided for microcontrollers. Thanks!
 

Yes. I started my programming with turbo C++ during my 1st year of school. Then I learn about microcontroller in my second year. I used to think that the lower level programming and higher level programming are different. The higher you go, the more different it is. But as time goes, I have realised that they are actually very much the same. I am into more of microntroller programming. When I program more & more complicated microcontroller stuff, I find it more and more like programming an operating system. I also have this opportunity to learn java programming from a very experience senior. I encounter many bugs and paradigm, because I didn't understand clearly how the software runs in a operating system. The solution that I learned were in my view very close to solving microcontroller issues. They are actually the same if you go deep into them. On the surface they may look very different, but the experience that you had can be portable across the two. They have the same fundamental hardware; a cpu processing sequential instruction. I would suggest you to start on a level that you are comfortable with, and explore the other domain if there is any opportunity.
 
Thanks for your time and the deep explanation. It has been really helpfull. So now I will start to learn the programming language (C++) first. Have lots of tutorials. In the same time learn about microcontrollers. That's the best way according to me. The more you know better you are :) Thanks a lot siongboon !
 

C++ is a very good language to start with. The microcontroller that I know of does not support C++, only up to C. It is still useful to learn though.
 

If you're beginner in C++ you better try to get ride on PC programming by learning Delphi or C#. The main difficulty with C++ is the use of the pointers, in Delphi or C# you'll understand faster how to program and you'll get faster results (notice that in C# or Delphi XE pointers are cursed and you need special permissions to allow unsafety code) . Once you can program on Delphi or C# you could naturally add C++. My point is - initial learning of PC programming is easier through Delphi. The latest Delphi XE is amazingly powerful and has nothing common with old Borland Delphi
 

I have a different opinion regarding learning pointers in programming. Other language may be easy to program at first because they have taken care of the pointers, but it may be difficult to recognize pointer/memory issue when you program deeper. Pointer/memory-access is a very important topic to understand. Although programming language like Java & C# has rubbish collecting features that save programmer lots of pointers/memory problems, it is still possible to produce memory leak or pointer problematic codes.

C++ is less forgiving than Java/C#, giving you fatal error for the fault/bug you produced. It might give you the impression that they have taken care of it all. Do keep in mind that your codes should still have the concept of pointer mind. Java/C# language can be quite an abstract to a beginner. A pointer might be seen differently in these language. Learning C++ first can provide you the fundamentals to appreciate language like Java/C#. You will be able to write a more robust, less buggy codes.
 

So your suggestion would be to go directly to first take another programming languages ? I took C++ eBooks and video tutorials and saw pointers and they are confusing. So do I need to go with other programming languages or go with C++? Thanks.
 

personally I had the same problems as you. I tried several times without success to take ride on C++ and was just too hard for me to understand the pointers. Then a friend of mine advised me to start with Delphi and on the first day I was able to write simple applications! So there is no comparision - with Delphi after several hours you'll be able to do simple programs, with C++ you'll need much more reading and experiments.

After some years I learned C# and C++ and my experience in Delphi helped me to understand easier C++. The usage of pointers will distract you from the object oriented programming, Delphi way of accessing objects is simply the "natural" one. Once you know Delphi you'll find out that C# is extremely similar to Delphi. C++ because of the pointers is far away from both C# and Delphi.

I'm strongly for Delphi if you're beginner, once you're experienced you can go to C# and C++ (the hardest)
 

If you could indicate the type of microcontroller you wish to use and the area of application, more relevent and to the point suggestions would pop in faster. May be your requirements may not demand exhaustive study of the programming languages available.
 

Well for starters I begun with 16F84.. But have no intentions to stop. I have books and tutorials for microcontrollers and I'm currently a beginner in it but will learn. About the programming languages, yes I also heard that it's easier with Delphi but still I'll try with C++. Thank you all. Very appreciated help.
 

hi

yes I also heard that it's easier with Delphi but still I'll try with C++

i think you are right to go with C++, once your concepts are clear you can use can programming language, with C++ initial learning curve may be longer.

after C++ every language will seem easy. since you are also studing micros go through assembly language. :)
 

That's what I thought. Thanks theta :)
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top