Author Topic: Which microcontroller should I learn?  (Read 34175 times)

0 Members and 1 Guest are viewing this topic.

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 18271
  • Country: nl
    • NCT Developments
Re: Which microcontroller should I learn?
« Reply #75 on: February 17, 2016, 04:57:45 pm »
If you know cheap board with an ICD that has a free toolchain I would like to know (seriously) because I looked a while ago and I couldn't find one so I went for the Tiva C.
There are lots of boards out there with on-board debugging interfaces... For example this one (I have two of these):
http://www.ebay.com/itm/New-NXP-ARM-Cortex-M3-LPC1768-Development-Board-3-2-TFT-LCD-Module-64KB-SRAM-/270962249071

Free toolchain is Eclipse + ARM GCC + GDB

Besides the TI ARM devices are (AFAIK) the old Luminary micro devices with their long errata sheets. Just a random pick: Tiva™ C Series TM4C129x errata sheet is more than 100 pages! NXP's LPC407x (also Cortex M4F) errata sheet is only 9 pages long (including title pages and disclaimers). Based on the dates the NXP LPC407x seems to be older than the Tiva C.

All in all the Tiva C seems like a poor choice because it is obviously slapped together without much thought or testing. That is not a microcontroller you want to invest time in unless it has a very specific advantage not found in other microcontrollers.
« Last Edit: February 17, 2016, 05:07:36 pm by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline Roicker

  • Contributor
  • Posts: 11
  • Country: mx
Re: Which microcontroller should I learn?
« Reply #76 on: February 17, 2016, 05:14:45 pm »
First things first... TL; DR; If you want to learn embedded seriously, buy something that is not an Arduino. My recommendation? The TIVA C for $12 + shipping

I think I may be qualified to answer the OP's original question. I have a B.S. in Mechatronics, M. Sc. in Control and I work as the SW Group Leader of a big Tier 1 (we sell to most of the automotive OEMs of the world) that makes ADAS Sensors. I'm not bragging, I just bring this up to try to explain why I think I'm qualified to give a relevant opinion.

I've hired a lot of people over the last years for the position of Embedded SW developer for Instrumentation Displays (Clusters) and ADAS Sensors and one thing that I really don't like to see in a candidate is when they say they know embedded because they have programmed in Arduino. Let me explain this: I don't think arduino is bad, it's actually a great tool (I have one in my 3D printer) for when you want something cheap and that can be reproduced by many, but if you only have used it with the libraries that come with it, or you bought a shield and downloaded code from somewhere... well I don't think I would be very interested in hiring you in that case. The problem in an interview is to separate the people that actually learned with an arduino from the people that only downloaded code and connected some cables.                   

If you have used Arduino for doing something complex (like program Ardupilot or Repetier for a 3D printer :P) well then it's easy for me (and any interviewer) to see that you have potential because you took a simple tool and built something great with it.

For the reasons mentioned above I think using something like a PIC, an ST or TI ARM or even an AVR Mega (I know that is the MCU of the Arduino, but I mean directly without the code base) is better for actually learning Embedded Systems. The current toolchains have the basic startup for the MCUs but after that, you need to analyze examples and read datasheets to understand how to setup and use the peripherals and debug SW by checking how the system is behaving after each step. These things are what we are looking for in embedded SW devs, engineers that can analyze requirements and write code to realize them and if something goes wrong DEBUG IT! With an Arduino most of this has been done, all you have to do is call a function. Also, the toolchain doesn't allow you to do in circuit debugging as far as I know you can only "code and pray" that it works.

The main problem with Arduino for me is: It makes it too easy! that is great if you don't want a career in Embedded SW, but if you do, I recommend something else.

My personal recommendation (because I've bought a couple of kits and worked with several MCUs) is the Tiva C from Texas instruments. Why?

1. The thing is cheap ($12) dlls plus shipping, but if you bundle that with other components you may need it's ok
2. Has good support from a community (it's obviously not as good as arduino but it works)
3. You have an In-Circuit Debugger included for free, which means you can execute your code step by step, set breakpoints, see the memory, etc. and all of this is great for learning and debugging
3. It has code examples and tutorials to teach you the basics because it's aimed at the DIY community
4. As long as you are using that board the compiler and toolchain are free with unlimited code size
5. It has a fast ARM Cortex M4F (with floating point) and it has a lot of peripherals

hope this helps!

Roicker, thank you very much for your answer. That was pretty much the info I was looking for.

I decide learning "real" embedded systems for the exact reason you explained.

I know how to program an Arduino, and I can make more complex things with it, but I don't feel like I'm really programming an embedded system, the Arduino language masks almost everything, limits the control I have over the uC and I'm limited to a small family of uC.

I'll follow your tips, the Tiva seems like a nice choice to start.

Can you tell me what do you look for in a interview? How does a candidate with no experience shows you that he know how to program embedded systems?

I'm current reading Making Embedded Systems by Elecia White, which seems like a good place to start.

I'm glad I was able to help cdonate!

When you struggle with programming your own routines for a peripheral or any other thing you are working on, you really learn stuff and that shows... with just a couple of questions I can see if someone downloaded a library to do everything or if he actually knows because he suffered several nights to get it to work. This is also true with team projects, it's easy to detect the guy that got everything to work and the guy who just put his name on the report at the end :P.

But to answer more directly to your question, I normally ask what kinds of projects you have worked on and go from there, trying to get details on how you did stuff and on what parts you had the most difficulties. Many Candidates "give me the rope to hang themselves", which means they talk about a project they were involved on, but they didn't really do the actual coding so they don't know it well (or at all).

It's funny but it's something you can't hide when you know and you can't fake when you don't! (at least in my experience :D)

I haven't read heard about the book you mentioned, but I learned embedded like 10 years ago hehehe

My advice would be, do the tutorials and then look for an interesting project and implement it, when you are done, do another one! that way you are learning, but it's fun and you have a bigger motivation than just wanting to learn embedded. In my opinion this is the best way to learn embedded, because each night you will stay up late struggling to get the project to work it will be because you are enjoying it.
 

Offline Roicker

  • Contributor
  • Posts: 11
  • Country: mx
Re: Which microcontroller should I learn?
« Reply #77 on: February 17, 2016, 05:32:04 pm »


Quote from: nctnico on Today at 03:57:45 AM


>Quote from: Roicker on Today at 03:25:19 AM
If you know cheap board with an ICD that has a free toolchain I would like to know (seriously) because I looked a while ago and I couldn't find one so I went for the Tiva C.


There are lots of boards out there with on-board debugging interfaces... For example this one (I have two of these):
http://www.ebay.com/itm/New-NXP-ARM-Cortex-M3-LPC1768-Development-Board-3-2-TFT-LCD-Module-64KB-SRAM-/270962249071

Free toolchain is Eclipse + ARM GCC + GDB

Besides the TI ARM devices are (AFAIK) the old Luminary micro devices with their long errata sheets. Just a random pick: Tiva™ C Series TM4C129x errata sheet is more than 100 pages! NXP's LPC407x (also Cortex M4F) errata sheet is only 9 pages long (including title pages and disclaimers). Based on the dates the NXP LPC407x seems to be older than the Tiva C.

All in all the Tiva C seems like a poor choice because it is obviously slapped together without much thought or testing. That is not a microcontroller you want to invest time in unless it has a very specific advantage not found in other microcontrollers.


I think you are missing the point nctnico, the OP wants something that is less intimidating than a Chinese board with no tutorials and with which you have to setup everything by yourself. I'm sure for a veteran like you that's no problem ;) but for a beginner it may be too much. Plus it's almost $70 and you are buying Chinese quality (which is not always bad, but it's more of a risk). Maybe switching to a better MCU would be a next step, once he has dominated a more basic setup with tutorials, an already configured toolchain and more help from a community that uses exactly the same setup and board.

I understand that the Tiva C has its limitations, but if you wanted to create your own toolchain and do something more professional then you are not the target audience for this board. This board is for beginners, even if you don't end up using it professionally you would be able to extrapolate that knowledge because the compiler is standard and the only difference will be how you set up peripherals.

All that being said, I've been using the Tiva C to develop the control of a balancing Robot and it's more than adequate for the job. I get ICD, a small footprint to be able to fit in the robot, a simple but powerful IDE and IT'S $12!!!!!!!!! I even considered a Teensy (~$20 depending on the version) but the Tiva C has ICD which after developing embedded SW professionally is something you can't live without :D.
 

Offline Sal Ammoniac

  • Frequent Contributor
  • **
  • Posts: 940
  • Country: us
    • Embedded Tales Blog
Re: Which microcontroller should I learn?
« Reply #78 on: February 17, 2016, 05:56:02 pm »
Just a random pick: Tiva™ C Series TM4C129x errata sheet is more than 100 pages! NXP's LPC407x (also Cortex M4F) errata sheet is only 9 pages long (including title pages and disclaimers). Based on the dates the NXP LPC407x seems to be older than the Tiva C.

If lack of errata is the criteria, then take a look at the Kinetis K64. Its errata is only 10 pages and the Eclipse-based Kinetis Development System is free without any code limits.

They have a series of boards called Freedom boards that are in the US$35 range. They have a built-in debugger or you can use an external JTAG or SWD debugger like a J-Link.



If you need something more expandable, look at the Kinetis tower system:

« Last Edit: February 17, 2016, 05:58:01 pm by Sal Ammoniac »
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 18271
  • Country: nl
    • NCT Developments
Re: Which microcontroller should I learn?
« Reply #79 on: February 17, 2016, 06:00:41 pm »
The board I propose comes with a full software suite and heaps of examples!

BTW I wouldn't be too fixated on ICD. In the past 25 years I have tried to use that several times but gave up on it because it always was slow and unstable. There are far better and easier ways to do debugging and unit testing which result in much more stable code.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Online tggzzz

  • Super Contributor
  • ***
  • Posts: 10438
  • Country: gb
    • Having fun doing more, with less
Re: Which microcontroller should I learn?
« Reply #80 on: February 17, 2016, 07:12:41 pm »
Nobody really explained (to me) why it has to be C and why C++ is sooo bad.

See http://yosefk.com/c++fqa/

If you don't understand the points therein, you shouldn't be using the language.
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline Roicker

  • Contributor
  • Posts: 11
  • Country: mx
Re: Which microcontroller should I learn?
« Reply #81 on: February 17, 2016, 07:16:50 pm »
The board I propose comes with a full software suite and heaps of examples!

BTW I wouldn't be too fixated on ICD. In the past 25 years I have tried to use that several times but gave up on it because it always was slow and unstable. There are far better and easier ways to do debugging and unit testing which result in much more stable code.

Alright, I'll take your work for it. In that case it's up to the OP to further investigate these options and see which one is best for him. I still believe that for the price and features, the Tiva C is better than other options (remember many students don't have a lot of money to buy tools and kits  ;D).

While I do agree that having a proper tool like a Green Hills Probe to debug is WAY better than the ICD included in the Tiva C, the price can't be beat. For $12 there are not a lot of options as complete for a beginner. I use this ICD often and I agree it's not super stable, but it gets the job done. It has helped me to debug the errors I had with this project. Would I rather use the Green Hills tools? Of course, but I can't spare the 10k at the moment. I know there are cheaper tools out there, but all this analysis would be the topic of a separate discussion because the question is not what is the best toolchain / MCU combo at the moment.

Remember that when you join a company it is very likely the MCU you use is not the one you have used since many big companies use custom SoCs and MCUs that are not available to the public. I know that is what we use, so I don't expect anyone to be familiar with it.

What I think it's important for someone just starting is to be able to step into his code, see the memory and what the peripherals are doing. I you don't have that, then it's more of a guessing game and it's not what you would do on a professional environment. If you want to do that with other tools you need a bigger investment and although they are better tools, not everyone can afford it.
« Last Edit: February 17, 2016, 07:22:14 pm by Roicker »
 

Online tggzzz

  • Super Contributor
  • ***
  • Posts: 10438
  • Country: gb
    • Having fun doing more, with less
Re: Which microcontroller should I learn?
« Reply #82 on: February 17, 2016, 07:23:48 pm »
If the designers don't understand their creation, what chance do mere users have?
IMO, the issue for a programmer isn't to enumerate all the weirdest consequences of a language, but to use it well and get work done.

Of course.  But the problem with C++ is that it is so complex that the nasty corner cases often bite even experienced programmers. Subsetting the language helps, but the problem is that every developer/team uses a slightly different subset.

Quote
I first started writing K&R style C more than 30 years ago and probably understand 95% of the language.

So did I. There were only two books on C at that time :)

Quote
Because I'm vastly more productive with C++'s strong typing, particularly when it comes to refactoring a big chunk of code.

C++ data is, of course, untyped. Sure, its variables are typed, but they can and do lie about the data. Consider, for example, the endless unresolved and unresolvable discussions about whether it should necessary (for general purpose libraries) or impossible (for assertions and optimisation) to "cast away constness".

If you want a strongly typed OO language, you have to use something like Smalltalk or Java. The refactoring capabilities of a Java or a Smalltalk environment are decades ahead of C++.
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Online tggzzz

  • Super Contributor
  • ***
  • Posts: 10438
  • Country: gb
    • Having fun doing more, with less
Re: Which microcontroller should I learn?
« Reply #83 on: February 17, 2016, 07:32:16 pm »
Can you tell me what do you look for in a interview? How does a candidate with no experience shows you that he know how to program embedded systems?

The simplest technique, which can be very revealing, is to ask them to present what they've done, then to talk about the decisions they made and what they would change now they have 20:20 hindsight.

If they have no experience, they can't show they can program embedded systems. The experience doesn't have to be professional; hobby/amateur can be acceptable - and even desirable.
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline Sal Ammoniac

  • Frequent Contributor
  • **
  • Posts: 940
  • Country: us
    • Embedded Tales Blog
Re: Which microcontroller should I learn?
« Reply #84 on: February 17, 2016, 09:35:52 pm »
Can you tell me what do you look for in a interview? How does a candidate with no experience shows you that he know how to program embedded systems?

A candidate with no experience, by definition, doesn't know how to program embedded systems. Just because you don't have professional experience doesn't mean you have no experience--lots of people have plenty of experience doing embedded programming as a hobby. As a hiring manager, I'd certainly consider hiring someone with hobby-level experience, but I would certainly question them closely to try and get an idea of how much they really know and how much is just BS. I've interviewed plenty of people who's only experience with a language, for example, was reading "Learn XX in 24 Hours" the night before the interview. It doesn't take an experienced interviewer long to root out these candidates and show them the door.

Here are some of the things I ask candidates for embedded software positions:

1. What's the difference between re-entrant, thread-safe, and position-independent code?
2. How would you write a bootloader for a microcontroller with only a single FLASH region?
3. What does the C keyword "volatile" do and when/how is it used? Same for "const" and "static".
4. Draw the state diagram for a simple FSM on the whiteboard (a 4-way traffic signal is a good starting place).
5. What is interrupt latency and why is it important?
6. What's the difference between a semaphore and a mutex and when would you use them?
7. What is a critical section and how would you implement one?
8. Have you used an oscilloscope? A logic analyser? Give me examples of how you've used them.
9. What is a pull-up resistor used for? How about a pull-down resistor?
10. What's the difference between a successive approximation ADC and a Sigma-Delta ADC?
11. What are the differences between SPI and I2C?
12. How fast do you have to sample a 10 kHz signal to faithfully reproduce it?
« Last Edit: August 27, 2019, 08:46:09 pm by Sal Ammoniac »
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 18271
  • Country: nl
    • NCT Developments
Re: Which microcontroller should I learn?
« Reply #85 on: February 17, 2016, 09:51:20 pm »
Unfortunately there are a lot of people out there which just talk a lot of bullshit so when interviewing I let the candidates make a test with relevant questions. That works really well to get an idea of their capabilities and doesn't take asking so many questions. The test results can also lead to asking more questions about their strong and weak points.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline legacy

  • Super Contributor
  • ***
  • Banned!
  • Posts: 4426
  • Country: ch
Re: Which microcontroller should I learn?
« Reply #86 on: February 17, 2016, 11:20:24 pm »
Here are some of the things I ask candidates for embedded software positions:
...

11 of 12 passed, can I have a chance  :D :D :D ?
 

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 944
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Which microcontroller should I learn?
« Reply #87 on: February 18, 2016, 08:04:17 am »
That line of questioning is soo last century. I would look for potential, is this person able to pick up new things quickly, does he/she grasp new concepts quickly, is he/she passionate about this stuff. The rest can be learned and is then real knowledge instead of (read) information.
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

Online tggzzz

  • Super Contributor
  • ***
  • Posts: 10438
  • Country: gb
    • Having fun doing more, with less
Re: Which microcontroller should I learn?
« Reply #88 on: February 18, 2016, 09:17:44 am »
That line of questioning is soo last century. I would look for potential, is this person able to pick up new things quickly, does he/she grasp new concepts quickly, is he/she passionate about this stuff. The rest can be learned and is then real knowledge instead of (read) information.

I have sympathy with that, but I interpreted the questions as being a starting point from which you can probe their level of experience.

If someone attempts to bullshit the difference between I2C and SPI, that's a bad sign. If they say "I don't know in detail, but ISTR...", that's OK.

If someone hasn't heard of re-entrant, thread-safe, PIC code, or scopes/LAs, mutex/semaphores, interrupt latency, then I know I'd have to teach them a lot.

If they don't know what an FSM is, or remembers they are used in compilers (don't laugh), I'd be worried.

If they gave the standard answer about const, I'd ask them whether it was possible to "cast away constness", and the desirability/undesirability of doing it.

If someone thinks they understand the effect of "volatile" in real-world C compilers and code, I'd think they have some experience but haven't been bitten by rare unreproducable "interactions".
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline dannyf

  • Super Contributor
  • ***
  • Posts: 8229
  • Country: 00
Re: Which microcontroller should I learn?
« Reply #89 on: February 18, 2016, 12:07:48 pm »
", but I don't feel like I'm really programming an embedded system, "

In case it hasn't been said, the arduino environment you have, the hardware, the ide, and the programmer, can be used to develop "real embedded programming".

So you have all you need right now to do what you want.
================================
https://dannyelectronics.wordpress.com/
 

Offline andyturk

  • Frequent Contributor
  • **
  • Posts: 892
  • Country: us
Re: Which microcontroller should I learn?
« Reply #90 on: February 18, 2016, 03:26:59 pm »
Can you tell me what do you look for in a interview? How does a candidate with no experience shows you that he know how to program embedded systems?

The simplest technique, which can be very revealing, is to ask them to present what they've done, then to talk about the decisions they made and what they would change now they have 20:20 hindsight.
Yep. Ask 'em what they've done, and what they're passionate about--hopefully that's something in the embedded world. Having passion for this kind of work is key. It's the only thing that'll get you through those nasty bug hunts where the gizmo falls over and you have no idea why.

Another great web-era interview technique is, "Show me your public git repos!"
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 18271
  • Country: nl
    • NCT Developments
Re: Which microcontroller should I learn?
« Reply #91 on: February 18, 2016, 03:42:45 pm »
Can you tell me what do you look for in a interview? How does a candidate with no experience shows you that he know how to program embedded systems?

The simplest technique, which can be very revealing, is to ask them to present what they've done, then to talk about the decisions they made and what they would change now they have 20:20 hindsight.
Yep. Ask 'em what they've done, and what they're passionate about--hopefully that's something in the embedded world. Having passion for this kind of work is key. It's the only thing that'll get you through those nasty bug hunts where the gizmo falls over and you have no idea why.
This line of questioning won't tell you whether the person has real experience or is just telling fairy tales.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline andyturk

  • Frequent Contributor
  • **
  • Posts: 892
  • Country: us
Re: Which microcontroller should I learn?
« Reply #92 on: February 18, 2016, 03:57:30 pm »
This line of questioning won't tell you whether the person has real experience or is just telling fairy tales.
Sure it does. Folks with passion talk about products they've shipped, or projects they've done at home in their spare time. They've got war stories and can defend (or criticize) their own implementation choices.

Ha, can you imagine the interview conversation between me and tggzzz re C++?  ;D
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 18271
  • Country: nl
    • NCT Developments
Re: Which microcontroller should I learn?
« Reply #93 on: February 18, 2016, 04:22:37 pm »
This line of questioning won't tell you whether the person has real experience or is just telling fairy tales.
Sure it does. Folks with passion talk about products they've shipped, or projects they've done at home in their spare time. They've got war stories and can defend (or criticize) their own implementation choices.
No it won't. From my experience: some people will lie and just tell stories during job interviews. There are those who just lurk around on an R&D department and listen to the stories of real engineers. A test/quiz is the only way to get solid information about someone's abilities.
« Last Edit: February 18, 2016, 04:24:13 pm by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline Sal Ammoniac

  • Frequent Contributor
  • **
  • Posts: 940
  • Country: us
    • Embedded Tales Blog
Re: Which microcontroller should I learn?
« Reply #94 on: February 18, 2016, 04:42:24 pm »
That line of questioning is soo last century. I would look for potential, is this person able to pick up new things quickly, does he/she grasp new concepts quickly, is he/she passionate about this stuff. The rest can be learned and is then real knowledge instead of (read) information.

That's okay for interviewing new college grads, although you still need to ask them technical questions. Case in point: I recently interviewed a candidate who was halfway through his last year of a four year EE program at a well-known and respected local university. This guy didn't know what a diode is.  :wtf:  I kid you not... How can you get through 3-1/2 years of an EE program and not know what a diode is? That's why I ask the technical questions.

When interviewing for positions that require senior people, I look for knowledge and experience in addition to passion and potential. By the time someone has gotten a few years into their careers they'd better have a good measure of knowledge and experience. Passion is important, but can't compensate for experience.
 

Offline andyturk

  • Frequent Contributor
  • **
  • Posts: 892
  • Country: us
Re: Which microcontroller should I learn?
« Reply #95 on: February 18, 2016, 05:54:42 pm »
No it won't. From my experience: some people will lie and just tell stories during job interviews. There are those who just lurk around on an R&D department and listen to the stories of real engineers. A test/quiz is the only way to get solid information about someone's abilities.
Well, if an interviewer can't tell fact from fiction, then that person should be part of the candidate's schedule. At least, not for the technical due diligence part.

To your point though, usually someone on the interview team will have a candidate demonstrate their ability with a quiz/test of some sort. But hopefully, the interview day won't consist solely of such quizzes.
 

Offline boost240

  • Newbie
  • Posts: 3
  • Country: ca
Re: Which microcontroller should I learn?
« Reply #96 on: February 18, 2016, 06:26:34 pm »
I have a similar problem as OP so I hope he doesn't mind if I jump in with my own thoughts.

I've always had an interest in technology/computers and over the last year it has grown immensely.  I've started to learn about the intricacies of the actual hardware and how it works.  I've been also been learning about electricity and electronics since the go hand in hand.  I've had an Arduino for a few years now but never really used it.  So I've decided that I would like to learn how to program microcontrollers for hobby reasons.  Maybe make an GPS/Alarm system for my car.  Or my own smart thermostat.  I want to bypass the Arduino environment because programming the bare metal gets me excited.  Plus it'll help me understand how CPUs work.  My issue is I can\t focus on one thing at a time.

I bought a great C programming book a few months ago but I haven't passed chapter 8 yet.  The reason being that when I get home I jump on the internet and I start looking at cool projects to make, different development boards, datasheets and etc.  In and of itself that's not bad, but I won't be able to do any of those things because I'm not learning C or how to actually program these chips.  Also, I'm in limbo because I decided to just learn to program the AVR 328p that came with the Arduino because it seems simple.  But then I'm like "maybe I should try a different board?".  Hmmm 16-bit?  ARM?  Maybe a TI board? Maybe, maybe, maybe.  I just want to be able to decide on a direction and actually stick to it and get the work done.

Anyone have any tips?  Please and thank you.
 

Offline westfw

  • Super Contributor
  • ***
  • Posts: 3098
  • Country: us
Re: Which microcontroller should I learn?
« Reply #97 on: February 18, 2016, 06:46:12 pm »
Quote
I start looking at cool projects to make, different development boards, datasheets and etc.  In and of itself that's not bad, but I won't be able to do any of those things because I'm not learning C or how to actually program these chips. ... I'm in limb...
Having projects that match your current level of expertise is relatively important, and it's probably The Great Myth of self-education that you can learn everything you need by doing only "interesting" things.  Sometimes you just have to do the boring stuff as well.
 

Offline MT

  • Super Contributor
  • ***
  • Posts: 1245
  • Country: fo
Re: Which microcontroller should I learn?
« Reply #98 on: February 18, 2016, 06:53:18 pm »
People who can talk their way into a job often can talk their way out of a job, craftsmen you dont have to tell what to do rather just giving them the direction and they will find their way there and also the solution to the job/problem all in tranquility. Often during the problem solving they improve on the original functionality while reducing overall production cost and increase ease of use for end customer.

They are the very opposite to people with Dunning Kruger effect or regular narcissists.

But craftsmen as all other people can also suffer from not knowing their value and go way to cheap, but knowing your value does not equal to be a nice personality, you might be forced to "act" like a narcissist in a environment who are narcissistic to establish your value. But when 45+ your already obsolete as an engineer anyway! :-//

Dont forget loads of engineers are Asperger's! All engineering professions have a best before day a phenomenon established by HR who newer have a best before day! :rant:

Quote
So, I would like your opinion on which microcontroller should I learn.
Among other things, I would like to know which microcontroller is most in demand now and for the foreseeable future.
I'm a bit green on the subject.

So the answer to your question are, you should not become a engineer but a gardener!
 

Online tggzzz

  • Super Contributor
  • ***
  • Posts: 10438
  • Country: gb
    • Having fun doing more, with less
Re: Which microcontroller should I learn?
« Reply #99 on: February 18, 2016, 07:04:46 pm »
My issue is I can\t focus on one thing at a time.

Anyone have any tips?  Please and thank you.

Determination, self-discipline, and doing the work where there is no internet to distract you.
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf