![]() |
IET | ![]() |
|
search :
help :
home
|
||
|
Latest News:
|
|
|


|
Topic Title: Beginning embedded c Topic Summary: Created On: 09 March 2009 06:04 PM Status: Post and Reply |
Linear : Threading : Single : Branch |
Search Topic |
Topic Tools
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
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. |
|
|
|
|
|
|
|
|
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. |
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
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. |
|
|
|
|
|
|
|
|
hi mdlc
you wrote 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. |
|
|
|
|
|
|
|
|
hi mdlc you wrote 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. |
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
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. |
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
1/ Purchase a small Atmel development kit such as AVR Butterfly which you can buy world wide from www.farnell.com
2/ Head to www.smileymicros.com and download the example code 3/ When you get stuck or fancy a break from your work, head over to the forums at www.avrfreaks.net Really in the industry there are two main processor choices, micro chip PIC or Atmel AVR. The AVR family has an amazing online support familly and massive "open source" style following. Microchip is more widely used but harder to learn as you will have your head in the datasheet 90% of the time. Personally I would go with the AVR, dont bother with a book straight away-just get your hands dirty so to speak. You will be a pro in no time! |
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
IET
» Electronic engineering
»
Beginning embedded c
|
Topic Tools |
FuseTalk Standard Edition v3.2 - © 1999-2013 FuseTalk Inc. All rights reserved.