I understand where you are coming from. It’s hard for me to understand, because I learned ASM (self-taught) on the original TRS-80. And my college education (early 70s) we had to write an assembler for a mythical machine (creating an assembler in BASIC. A little irony). So, I had the background. And after 50 years of coding, sometimes it’s hard to understand how anyone doesn’t know the basics.I disagree. I teach MCU and embedded programming. The first thing we teach is ASM before moving on to C. You cannot appreciate C code unless you have an intimate knowledge of how the MCU hardware works. Some C programmers don't know the difference between a byte, word, and long word because they never took the effort to learn it. My 2 cents.
Just because you teach it that way doesn't mean it's the best way. Lots of things aren't taught the best way. Take a look at Prof. Land's classes at Cornell. See if he teaches his students assembly at all. I bet MIT teaches C first, probably not assembly at all. There's only so much time. They want to get those kids up and running.I disagree. I teach MCU and embedded programming. The first thing we teach is ASM before moving on to C. You cannot appreciate C code unless you have an intimate knowledge of how the MCU hardware works. Some C programmers don't know the difference between a byte, word, and long word because they never took the effort to learn it. My 2 cents.
PICList.com (http://www.piclist.com/techref/piclist/index.htm) is a great resource for various routines and is mostly in MPASM. Of course, as the crowd has moved to C, that resource is less active, and most of its code is written for the earlier chips. Translating to the newer chips is not difficult, and it will run on them without modification.Arduino has libraries for everything. Seriously, if you want to do something, someone has made a library for it already. Microchip does have libraries for PIC's, but there are almost no third-party libraries...so if Microchip didn't create the library, you're out of luck.
I don't buy that.Sure, some C programmers don't know all the variable differences. So? Bad programmers exist. It's a normal distribution, just like everything else.
Focusing on the minute details first is backwards. First you generalize, THEN you focus down...IF that becomes necessary.
I like the automotive analogy. If you wanted to learn how cars work, would you be better off buying an engine (PIC) or a project car (arduino)? Either answer could be correct depending on how you define your goals. If you want to learn in general all aspects of automotive engineering, you would learn a whole lot more by buying an engine and building a car up around it. But if your goal is to study how to improve suspension travel then rebuilding carburetors would be a waste of time.If you want to get in on the ground floor and work your way up in the embedded market, learn how an MCU works and how to program in ASM.
In way of an analogy, suppose you want to become an automotive engineer. The VW Beetle is like the Arduino in the automobile market. Would you want to learn how to drive a VW Beetle or how the internal combustion engine works?
Thread starter | Similar threads | Forum | Replies | Date |
---|---|---|---|---|
![]() |
[SOLVED] Optical encoder wiring confusion | Microcontrollers | 3 | |
K | Transformer confusion | Power Electronics | 9 | |
![]() |
Cat toy circuit board confusion and button dilemmas | General Electronics Chat | 17 | |
B | Building an oven, SSR confusion | General Electronics Chat | 11 | |
B | confusion between arduino and AVR | Microcontrollers | 8 |
by Jake Hertz
by Dale Wilson
by Aaron Carman