Want to relearn C, what book?

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

bob4432

Lifer
Sep 6, 2003
11,695
28
91
SOFTengCOMPelec,
I appreciate your candor. The projects will be all over the place and when the time comes when I get stuck (which I know I will), I will ask for assistance. Since I am relearning, I figured I may as well learn with the smallest common denominator in mind which I figure would translate into more efficient code than if I relearned with a PC as my lowest common denominator where power and memory are not of a real concern.

I would like to be able to contribute to projects that interest me and not always just taking. Sometimes what I want is just not out there for whatever reason and would like to have the skills to solve my own problems. I understand about teamwork and that will more than likely take place, but I need to be able to contribute first and that is where this is all coming from.

Again, appreciate the candor and concern - I understand what I am wanting to do is not easy, if it was, there would be no reason to do it.
Bob

Someone who has got many, many years of programming in C, embedded microcontroller experience (real time). Can with a degree of difficulty, tend to cope with what you have just described. Even if they have NOT got expensive test gear (such as emulators, logic analysers etc etc). Possibly even without the manufacturers development boards. Which can be amazingly cheap (like $75), in some cases.

But if someone who has never done (embedded real time C) programming on a microcontroller, with a reasonably complicated task to do/perform.

They will probably find the lack of pre-installed operating system (e.g. Linux), lack of diagnostic capabilities (No emulators etc), a really hard, uphill struggle, even to get it to do something quite simple. Let alone much more complicated things.

Peripherals tend to be difficult and fiddly/annoying to control in software, especially if you are completely inexperienced with them. There is a tendency if you get it wrong, at times, for the unit to just simply completely crash. Giving you no clue whatsoever, as to why, and what has gone wrong.

If you have got lots of time on your hands, and DON'T get frustrated easily, and really, really want to get your hands dirty, then do it.

It's much easier doing stuff like that in teams. Because you can split the work, and readily ask for advice from the many experienced engineers, who are working with you.

If you like. Try it for a few weeks and see how you get on. Without trying it, it can be difficult to put it into perspective, how hard and frustrating it can really be.

Analogy:
If there was someone who knew absolutely nothing about Electronics. Should they read a book on electronics for an hour or so. Then Design a 750 MHz 8 layer PCB, with complicated analogue/Digital circuitry, wave guides and create from scratch a large FPGA VHDL setup files ?

If it is a VERY simple, down to Earth task that your unit does, then things are not that bad.

EDIT: At times, I can be overly pessimistic and too negative. If others chime in with more confidence with this, please take that into account.
Since I'm not really sure exactly what you are trying to do here (overall, project wise), it is difficult to be accurate.
At the moment the project(s), could be anything, from a door bell unit, to a new control module for future space flights.
 

SOFTengCOMPelec

Platinum Member
May 9, 2013
2,417
75
91
SOFTengCOMPelec,
I appreciate your candor. The projects will be all over the place and when the time comes when I get stuck (which I know I will), I will ask for assistance. Since I am relearning, I figured I may as well learn with the smallest common denominator in mind which I figure would translate into more efficient code than if I relearned with a PC as my lowest common denominator where power and memory are not of a real concern.

I would like to be able to contribute to projects that interest me and not always just taking. Sometimes what I want is just not out there for whatever reason and would like to have the skills to solve my own problems. I understand about teamwork and that will more than likely take place, but I need to be able to contribute first and that is where this is all coming from.

Again, appreciate the candor and concern - I understand what I am wanting to do is not easy, if it was, there would be no reason to do it.
Bob

That doesn't sound too bad. I understand your situation, better now.

Embedded (real time) C, software development, is a valuable skill to learn. Especially if you already know a lot about Electronics. As the two fields combine, to allow you to tackle ever increasingly complicated, modern projects.

It does not cost that much more, these days, to get microcontrollers (such as arm), which are reasonably comparable to desktop PCs from the last 10/15 years ago, roughly. I.e. lots of processor speed, memory and other stuff.

Arduinos are another low cost avenue, to pre-made microcontroller stuff.

https://en.wikipedia.org/wiki/Arduino

But there are still plenty of lowest cost, simple microcontrollers available, which it sounds like you would be using.
 

sao123

Lifer
May 27, 2002
12,648
201
106
Writing an app for iOS, Android or Windows Phone is not embedded. You're targeting an operating system, not a piece of hardware.

the .Net Micro Framework is not for Mobile Devices is for System on a Chip boards, similar to the R-Pi...

You are confusing it with Mobile SDK's like Xamarin, Mono, .Net Compact, etc.


The Microframework is currently supports embedded processor devices including all ARM7 & ARM9 devices, Cirrus Logic 93 series units, Blackfin CPU's, FreeScale i.MXS cpu's, Atmel AT91SAM9 and the Phillips NXP LPC2000.

Many of the boards/devkits devices are made by vendors such as: Netduino, Arduino, GHI, Mountaineerm STMicroelectronics, Nttmfdevices, Mircomint, and .NET Gadgeteer.

Primarily used for robotics, security systems, home theatre, and Environmental/HVAC...It can run either on an OS, or on Bare Metal using only an HAL driver. The .NetMF has I/O APIs for GPIO, I2C, SPI, Serial, ADC, PWM, COM, and TCP/IP.

It is basically aimed at the same market segment which is currently occupied by embedded devices which use Python and J2ME. (quite common)
 

Exophase

Diamond Member
Apr 19, 2012
4,439
9
81
Native code is not the only acceptable approach to embedded projects nowadays.

Maybe for whatever embedded stuff you do, but in a lot of embedded work there's not just hard limit on flash, RAM, and processor time but it pays to drive it down as much as possible so you can use the cheapest part available. And they run the type of programs that don't benefit that much from C#'s features anyway (for example, dynamic allocation and the heap are often not a thing that's needed)
 

SOFTengCOMPelec

Platinum Member
May 9, 2013
2,417
75
91
w3schools doesn't even do C.

http://www.w3schools.in/c/intro/

The website can be confusing. If you have not used it that much.
I.e. It can look like they DON'T cover C.

EDIT2: When I said the above statements. I did not realize there may be multiple organisations, using the same/similar names.

EDIT:
Question ?

I'm not sure what connection there is between

http://www.w3schools.com/

and http://www.w3schools.in/

Are they related, or competing against each other ?

Anyway the "C book", on it seems useful, anyway.

EDIT3:
As far as I can tell, the .IN website is probably NOT connected to the real http://www.w3schools.com/, stuff.
It is probably one of those copycat/imitation type of things.
Sorry.
 
Last edited:

Ken g6

Programming Moderator, Elite Member
Moderator
Dec 11, 1999
16,284
3,905
75
@SOFTengCOMPelec, I stand corrected. I didn't even know about w3schools.in. Thanks for pointing it out.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |