Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Beggining with PIC's

Status
Not open for further replies.
Hi Eric,

When I state "reasonable sized project" I'm thinking along commercial lines. The last commercial project I was involved in that was completely in assembler was Max Carnage and that was 16 years ago. Written completely in 68k assembler with 4 programmers. Now, even something as trivial as a USB drive or an MP3 player is not practical in assembler.

I should go back a few years and find some posts on here where I defended assembler as at that time no decent compilers were available. Unfortunately, the search engine doesn't allow it.:rolleyes:

Mike.
 
As you 'should' be leaving behind your well commented and documented source code, it should be relatively easy to replace you with any competent programmer.

In the early 90's our company staffed the same project twice to see which team would come up with better technology. That would be unthinkable today.

A lot of programmers are being worked to the point where they have little life outside work. Well documented code is on the decline. The pressure to ship is just too great.

An extreme example is Microsoft restarting Vista Development several times because people entering the project could not understand the code left by people leaving.

Managers like to think they can easily replace one software engineer with another. But it can be a huge, at times fatal mistake.

EDIT: Regarding the current climate. One person I worked with left because she was tired of training 3rd world people to replace local programmers. One of the better managers in my friends former workplace off'ed himself rather then dump more crap on his people. Another friend lost months of vacation time when the company changed the policy on how much he could carry. Had he taken the time he was sure he would be out of a job when he returned. At 60 plus years finding another job would not hard. Almost none of the people I know have gotten raises in the past 5 or so years and everyone is working longer hours on a fixed salary.

What makes sense for the hobbyist does not for the profession firmware or software engineer.
 
Last edited:
Having said all this 3v0, which C compiler would u recommend?

BTW Nigel I also used the AMIGA 4000/Toaster 4000 to break the back of competing SGI IRIS / INDIGO people in 3D animation here in The Caribbean. They could not compete with the ground up multitasking of the Amiga, I could edit video/render lightwave 3D/process audio and compile finished digital video all at once using ARexx intra software handshaking since 1994. With a grand total of 16MB Ram.

BTW 3V0 the blitter chip had nothing to do with how I outperformed machines that cost 10x as much. I am talking all CPU processing here.

I kept the 25Mhz cacheless 68040 as a memento.
 
Last edited:
Mosaic said:
Having said all this 3v0, which C compiler would u recommend?

Interesting question but there is not a simple answer.

When I was spending company money I looked for the compiler that would let me get the project done ASAP. The first requirement was decent support. Then it was the ability to make a call to the vendors support staff or even the developers. Now it would be an active and knowledgeable forum. I would stay away from a vendor with low forum activity or activity that indicates a buggy product. It has been a few years since I checked but CCS used to have a top notch forum.

For the student of hobbyist cost is a major factor. I have been using the no cost demo or student C18 compiler in that it does not have a code size limit. In terms of optimization it stinks but it is much cheaper to spend a few bucks on processors instead of buying a well optimized compiler.

In either case I would like the best debug setup I can get. When working it was a processor emulator or a logic analyzer that related the instruction in the trace back to the source. As a hobbyist using mid range PICs it is currently a picKit2. In addition to a real picKit2 I have a good number of Bill's Junebugs that I use for development and teaching. For serial work of various flavors a LA with a post processor is nice to have.

EDIT: A lot of people do good work without fancy debug tools. It works too.
 
Last edited:
Having said all this 3v0, which C compiler would u recommend?

BTW Nigel I also used the AMIGA 4000/Toaster 4000 to break the back of competing SGI IRIS / INDIGO people in 3D animation here in The Caribbean. They could not compete with the ground up multitasking of the Amiga, I could edit video/render lightwave 3D/process audio and compile finished digital video all at once using ARexx intra software handshaking since 1994. With a grand total of 16MB Ram.

The Amiga was a truely amazing machine, decades ahead of IBM PC's.
 
The Amiga was a truely amazing machine, decades ahead of IBM PC's.

Anything with a 68K was better. When Moto fab'd the 68010 with real VM support I was in heaven (flat 32-bit address space). I have VME buss semi process machines with 020 and 030 processors that are still making todays processors.
 
So I guess it boils down to C and ASM. My question is, where is the future headed in terms of languages. I would rather learn the language that will still be widely used in days to come, rather than having to learn another language later.

Another point, I am currently using "flowcode" to get the basic understanding of the PIC functions such as timers and IO. I feel like I am past that now, and I would rather learn how to really program a PIC.
 
Sort of like asking if dogs or cats are better pets. It depends on you more then the animal. Both have clear advantages.

Neither ASM or C is going away anytime soon.

C other then the processor specific bits is mostly standard.

Each ASM is specific to the processor core. But after you learn a few different ASM's it is not difficult to learn the next one.

If you really want to understand the microprocessor core then ASM is great.

If you view the microprocessor as a means to an end C is a better choice. Flow code generates BoostC C code, you already own the compiler.

I think everyone who programs a uC should learn assembler. I do not think it should be a first language and I do not think writing entire applications in it is a reasonable thing to do.

Having said that there some people are doing wonderful little applications that run on the little 10F and 12F chips. I love these but it does not scale to larger problems well.
 
Last edited:
Because of the design history of C "created by people who wrote systems software" it translates very close to machine ASM code. So learn ASM programming then find a good book to help you to the next level. The only thing I have used that came close to C was Modula-2 but that's almost a dead language now.

Modula-2 - Wikipedia, the free encyclopedia
Computer Books & Technology Books: Applying Pic18 Microcontrollers by Brey, Barry B.: Better World Books

Amazon.com: Applying PIC18 Microcontrollers: Architecture, Programming, and…
 

Attachments

  • ATOMIC.txt
    31.4 KB · Views: 132
Last edited:
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top