Previous in Forum: E-tailing Solution   Next in Forum: "C" Input Overloading
Close
Close
Close
8 comments
Anonymous Poster

Getting Started With Programming

11/27/2006 2:15 AM

Hi,

I am a programmer in the normal desktop applications area, working in Hyderabad, India.

I am very good at "C" language and understand some low level stuff (binary arithmetic etc). I want to "buy" something (like a PLC or Microcontroller) and do one practical exercise to understand programming outside of the regular PC. Is there such a hands-on tutorial available? Also, what equipment (and where in India) do I need to buy?

Thank you,

Sreedhar.

Reply
Pathfinder Tags: programming software tutorials
Interested in this topic? By joining CR4 you can "subscribe" to
this discussion and receive notification when new comments are added.
Active Contributor

Join Date: Sep 2006
Location: Bangalore, India
Posts: 20
#1

Re: Getting Started With Programming

11/28/2006 12:21 AM

You wrote: do one practical exercise to understand programming outside of the regular PC.

Do you mean only "Embedded software development" and I guess in "C" Language?

You can start with a simple 8051-based microcontroller kit. They are available at most of the places (there are hundreds of brands / specifications / price range). You need to select one that suits your requirement. The popular ones that I remember are Dallas Semiconductors (MAXIM). http://www.maxim-ic.com/products/microcontrollers/8051/development_tools/. These must be available in Hyderabad too. An entry level kit should cost between Rs.1000/- to 2500/-.

To work with a microcontroller, you need to know (to a fair extent) about the underlying electronics too. For example, the interfacing mechanism to access another peripheral etc (even to turn an LED or a motor on / off). You need to study the micro-controller also (through their Data Sheets).

There are plenty of books (Amazon.com: search under "Embedded Systems Programming"). Example: http://www.amazon.com/Art-Programming-Embedded-Systems/dp/0122748808/sr=1-5/qid=1164691197/ref=sr_1_5/102-9610964-9210564?ie=UTF8&s=books

Govinda Padaki

Reply
Member

Join Date: Oct 2006
Posts: 5
#2

Re: Getting Started With Programming

11/28/2006 1:28 AM

The 8051 might even be more difficult for a beginner, rather try some of the large range that Microchip offers. Called PIC, very easy to learn and C-compiler is also available.

Reply
Anonymous Poster
#3

Re: Getting Started With Programming

11/28/2006 3:47 AM

I think 8051 is not very effective. You should learn PIC series microcontrollers first. Because you can find a lot of konwledge on microchip web site. There is a lot of manual and application notes. if you are new, Do not forget that you must learn assembler codes which are related with hardware. After you can use C codes.

Reply
Power-User

Join Date: Nov 2006
Location: SE MI USA
Posts: 105
#4

Re: Getting Started With Programming

11/28/2006 5:14 AM

If you interested in PLCs, check out:

http://www.plctalk.net/

and

http://www.mrplc.com/

PLCtalk has a simulator that you can use for free.

Reply
Anonymous Poster
#5

Re: Getting Started With Programming

11/28/2006 6:53 AM

I´m also a skilled C programmer.
If you are (like me) an electronics student or engeneer, try the Zworld Coyote

http://www.rabbitsemiconductor.com/products/bl2500/

For me it was like a seamless migration from borlandC to this "Dynamic C" (it´s the same ANSI C plus some macros to take advantage of the special features this boarf offers).

As for availability in India i´m not sure. I live in Argentina and they were not hard to get here.

If you have any doubts, write me at alejandro@xve.com

Regards.

Alejandro.

Reply
Power-User

Join Date: Aug 2006
Posts: 169
#6

Re: Getting Started With Programming

11/28/2006 10:52 AM

Hi, I started in embedded software design with the 8051 family uController. More specificly on a board from pjrc.com. Paul offers a BUNCH of free code and support along with the hardware. I loved it.

Then in an Embedded Systems Design class we did several projects. The first two with 8051, the first in assembly and the second in C. The third lab was on a PIC. The last two labs on 32 bit ARM processors both in C#. MY OPINION:

8051 capable, been around for a long time so plenty of mfgrs and support.

PIC alright, but mem bank switching sucks. It was nice smaller replacement for 8051 when the 8051 had way too much power. I don't know, but PIC C compilers probably handle bank swaping for you.

After college I got into Atmel AVR 8-bit (I'll be careful this time as I got in trouble last time I bragged up AVR here.) ;) Agian, MY OPINION, is that the AVR family is better for in almost every facet than the 8051s and PICs. Lots of support and freeware available to get you started and going. Check out http://www.atmel.com/products/avr/ home of the AVR. Also a great support forum at http://www.avrfreaks.net/ with links to starter guides.

Most importantly, which ever controller you choose to go with, learn the hardware features and quirks of the family. examples

8051 had 12 clock cycles per instruction, most now have 6 I think, and some have 1. (so you cannot just compare clock speed) Interrupt levels, number of them offered and if they can be prioretiesed.

I know AVR and I think PIC have internal oscillators, the 8051s might have them now too. That is a very nice feature, no need to hook up a crystal and caps or resanator.

8051 has a very nice interface to external mem for 16 bit address buss and 8 bit data buss with the adress latch enable and read and write controll lines. Only one AVR has external buss in hardware, otherwise you need to do it in software.

Internal RAM, Internal FLASH (program memory) kinda need to have internal RAM and and program mem if there isn't external buss!

ISP (in system programming) my opinion, again, is that that this is the most important feature in a uController. You may not need timers, or serial engines, but you have to be able to program the machine.

Internal Analog to Digital converters!!!, need more than two counter/timers? How about PWM (Pulse Width Modulation) all done in hardware. All these hardware features are what sets uControllers apart from processors. Don't forget on chip uarts, SPI (Serial Perifial Interface) I2C (Philips two wire interface, Atmel calls it TWI), USB. Yes some uControllers have internal hardware USB devices.

The important thing is that you learn the hardware of each uController you work with. This is because the way the exicute code can be very different. As you probably know PCs have become standardised, especially if you're only working "on top of" the operating system. When coding for a PC you don't care what processor your code is running on (as long as it is fast enough...) but it could be any of the latest processors. Microcontrollers are certainly not that way, knowing the assembly language instructions that the particular machine is capable of is very important even when coding in C. Afterall, the compiler just turns your C code into assembly instructions anyways.

Reply
Commentator

Join Date: Feb 2008
Location: Everywhere, but nowhere.
Posts: 88
#7

Re: Getting Started With Programming

03/19/2008 4:15 AM

"hello world."

Interrupts.

Low level stuff like binary arithmetic is high school stuff!

If you really want to be a "god in C" you must learn assembly language and inline it with C. Study interrupt functions. Create software interface with hardware connections.

Handshaking of software/software or software/hardware is one programing challenge.

In the olden days (80's & 90's), we create softwares which should be idiot proof. In fact the GUI should also be programmed! Now with the advent of windows, all the prograamer has to think of are the functions of the software, and the GUI is simply added because it has already been pre-programmed/compiled for him in libraries.

The fact is "low level programming" is the pinnacle/highest level of programming, very few people dare venture into it. "High level programming" are for the mediocre ones who can add 1 + 1 = 2, but do not know HOW & WHY,

"We the gods of programming are a dying breed", the world is left with mortals who simply use our primitives to create something complex.

Buy books by Norton.

__________________
"It is only when we die that we become Immortal."
Reply
Guru
United States - Member - New Member Technical Fields - Technical Writing - New Member Popular Science - Weaponology - Organizer Hobbies - Target Shooting - New Member Engineering Fields - Nuclear Engineering - New Member

Join Date: Mar 2005
Posts: 2970
Good Answers: 33
#8

Re: Getting Started With Programming

03/19/2008 8:26 AM

Hello, Guest. Check out CR4's new Software for Engineers blog, too. And if there are topics you'd like to see there, please let me know . - Moose

Reply
Reply to Forum Thread 8 comments
Interested in this topic? By joining CR4 you can "subscribe" to
this discussion and receive notification when new comments are added.
Copy to Clipboard

Users who posted comments:

Anonymous Poster (2); GovindaPadaki (1); High Lander (1); jstolaruk (1); juba-jabba (1); protea (1); Steve Melito (1)

Previous in Forum: E-tailing Solution   Next in Forum: "C" Input Overloading

Advertisement