IET
Decrease font size
Increase font size
Topic Title: Beginning embedded c
Topic Summary:
Created On: 09 March 2009 06:04 PM
Status: Read Only
Linear : Threading : Single : Branch
Search Topic Search Topic
Topic Tools Topic Tools
View similar topics View similar topics
View topic in raw text format. Print this topic.
 09 March 2009 06:04 PM
User is offline View Users Profile Print this message



mdlc

Posts: 3
Joined: 30 October 2006

Hi all,

After completing a fairly broad engineering degree, I now what to focus more on electronics/control. Although I have a reasonable grasp of everything else required I have absolutely no (and I mean no) knowledge of software. My goal is to learn C for embedded applications. Ive tried a couple of books on embedded C but got lost within the first few pages.

I don't know if I should:

a) Start with a beginner's book on general C programming
b) Try learning a laugauge like BASIC first
c) Try learning assembly code fist
d) be learning C, C++ or C#

If anyone can point me in the right direction or think of a book that you would buy for an idiot Id appreciate it very much. Also, if anyone has any other advice for a 'wannabe' embedded engineer please tell.

Many thanks,

Malcolm Colhoun
 09 March 2009 11:41 PM
User is offline View Users Profile Print this message



westonpa

Posts: 1771
Joined: 10 October 2007

Reading programming books without something to program is like trying to run through treacle with diving boots on.....in my opinion.

I would suggest to get a micro-controller which you can program to do something. I use www.rabbit.com equipment myself but there are many others out there and each have their good and bad points. I find it easier and more pleasurable to learn when something works at the end of it. Regards.
 10 March 2009 09:53 AM
User is offline View Users Profile Print this message



tribull

Posts: 6
Joined: 28 November 2002

I'd agree with westonpa,

Books are useful but more so when combined with something tangible ie a development board which can flash some LEDs etc.

In my opinion books can also be personal, what one person finds easy to follow another might find really difficult.

PIC microcontrollers should be readily available and it might also be worth looking at FPGA development boards (xilinx/altera) as you can drop micros into both and there's good S/W support for both and example designs. I'd say these also leave you open to trying VHDL/Verilog which is something you might not have considered.



 11 March 2009 05:48 PM
User is offline View Users Profile Print this message



eswnl

Posts: 144
Joined: 29 November 2008

There is a development board from Matrix multimedia. It also comes with C programming version.

C programming was not designed for a specific application in mind, its just another progamming language like Visual Basic.

It might be easier to learn C programming in the context of microcontrollers, instead of trying to learn the whole C programming language.

Edited: 11 March 2009 at 05:52 PM by eswnl
 11 March 2009 11:06 PM
User is offline View Users Profile Print this message



mdlc

Posts: 3
Joined: 30 October 2006

Thanks all for the info.

Ive now got quite a bit to think about - there are much more options out there for embedded software than I realised.

Just one more question before I fry my brain.

If all microcontrollers run on machine code and if all languages (and assembly code) are compiled into machine code does this mean that you can use any language to program any device? Or are certain devices programable using a specified language and maybe even a particular version of that language?

Thanks

Malcolm
 11 March 2009 11:44 PM
User is offline View Users Profile Print this message



eswnl

Posts: 144
Joined: 29 November 2008

Originally posted by: mdlc

Thanks all for the info.



Ive now got quite a bit to think about - there are much more options out there for embedded software than I realised.



Just one more question before I fry my brain.



If all microcontrollers run on machine code and if all languages (and assembly code) are compiled into machine code does this mean that you can use any language to program any device? Or are certain devices programable using a specified language and maybe even a particular version of that language?



Thanks



Malcolm


A Program in C or Visual Basic etc, is transferable to any PIC microcontroller. This is HIGH level programming. When the computer compiles this down to the assembly code and machine code(LOW Level Program) this is when it needs to know what PIC you are using. Because the memory spaces inside the PIC is unique to each PIC.
 15 March 2009 01:01 PM
User is offline View Users Profile Print this message



mstab

Posts: 51
Joined: 14 July 2003

hi mdlc

you wrote
After completing a fairly broad engineering degree, I now what to focus more on electronics/control.


Do you wish to focus more on electronic systems, controls systems, or embedded control systems?

was you degree orientated more towards electronics, electrical systems or mechanical systems?

if you wish to work primarily on the hardware side of things then you only need basic understanding of programming, if you wish to work on embedded electronics on software then not only will you need to program in C/ADA you will also need to understand assembler and different technologies 8-bit to 64-bit.
you will also ,as a start, need to understand numerical methods in software,information systems (eg, error correction, cyclic codes, compression), DSP, scheduling. operating systems and buses.
So once you can write basic software there is still a vast amount of learning required.

if you are interest in control systems then you could also condiser Programmable Logic Controllers(PLCs) include microPLCs, intelligent relays, etc. Ladder Logic is easy to understand if coming from an electrical background.





 15 March 2009 06:36 PM
User is offline View Users Profile Print this message



eswnl

Posts: 144
Joined: 29 November 2008

Originally posted by: mstab

hi mdlc



you wrote

After completing a fairly broad engineering degree, I now what to focus more on electronics/control.




Do you wish to focus more on electronic systems, controls systems, or embedded control systems?



was you degree orientated more towards electronics, electrical systems or mechanical systems?



if you wish to work primarily on the hardware side of things then you only need basic understanding of programming, if you wish to work on embedded electronics on software then not only will you need to program in C/ADA you will also need to understand assembler and different technologies 8-bit to 64-bit.

you will also ,as a start, need to understand numerical methods in software,information systems (eg, error correction, cyclic codes, compression), DSP, scheduling. operating systems and buses.

So once you can write basic software there is still a vast amount of learning required.



if you are interest in control systems then you could also condiser Programmable Logic Controllers(PLCs) include microPLCs, intelligent relays, etc. Ladder Logic is easy to understand if coming from an electrical background.


Has anyone heard of CodeSys? I used this briefly just before leaving my job to program a CANbus system.
 16 March 2009 09:55 PM
User is offline View Users Profile Print this message



mdlc

Posts: 3
Joined: 30 October 2006

Hi

My route to graduation was as follows.

1)HND Mechanical Engineering
2)OU Study - Random level 3 study of both mechanical and electronic modules.
3)Some of year 4 and all of year 5 of an MEng in Engineering at the University of Ulster. This was of an electronic bias with modules including DSP, RF Design and Control.

My problem now is that while my highest level of education is in the electronic side, I missed out on a lot of the foundation stuff (ie software, matlab etc.) that you would learn in the early years of an electronic engineering degree. Where these skills were required for the MEng modules it was a bit of a struggle but I somehow managed to get through.

I really now just want to be a well rounded electronics engineer. So to answer your question, I want a good foundation knowledge of software and embedded systems. Enough say to have a sensible conversation with a software/embedded engineer of a project in which I was involved. Also, I would like to be able to design and build both the hardware and software elements of relatively simple systems.

Thanks for all the advice so far everyone.

Malcolm
 17 March 2009 11:05 AM
User is offline View Users Profile Print this message



jencam

Posts: 608
Joined: 06 May 2007

Originally posted by: mdlc
If all microcontrollers run on machine code and if all languages (and assembly code) are compiled into machine code does this mean that you can use any language to program any device? Or are certain devices programable using a specified language and maybe even a particular version of that language?


If you wish to program using a high level language then a compiler for that language has to exist for the microcontroller you are using. A C compiler exists for almost every microcontroller. If you plan on using another high level language then there will be restrictions on which microcontrollers you can use depending on which compilers exist.
 22 May 2009 11:37 AM
User is offline View Users Profile Print this message



cofluentdesign

Posts: 3
Joined: 22 May 2009

u can opt for model-driven electronic system level (ESL) tools and services to support designers of complex multiprocessor electronic systems with rich application content, multi-board, on-board or on-chip.
 09 January 2012 06:04 PM
User is offline View Users Profile Print this message



deleted_1_moonlina25

Posts: 1
Joined: 09 January 2012

Originally posted by: mdlc

Hi



My route to graduation was as follows.



1)HND Mechanical Engineering

2)OU Study - Random level 3 study of both mechanical and electronic modules.

3)Some of year 4 and all of year 5 of an MEng in Engineering at the University of Ulster. This was of an electronic bias with module
including DSP, RF Design and Control.



My problem now is that while my highest level of education is in the electronic side, I missed out on a lot of the foundation stuff (ie software, matlab etc.) that you lalinguaarabapertutti.com would learn in the early years of an electronic engineering degree. Where these skills were required for the MEng modules it was a bit of a struggle but I somehow managed to get through.



I really now just want to be a well rounded electronics engineer. So to answer your question, I want a good foundation knowledge of software and embedded systems. Enough say to have a sensible conversation with a software/embedded engineer of a project in which I was involved. Also, I would like to be able to design and build both the hardware and software elements of relatively simple systems.



Thanks for all the advice so far everyone.



Malcolm


thanks alot
Statistics

See Also:



FuseTalk Standard Edition v3.2 - © 1999-2014 FuseTalk Inc. All rights reserved.