CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

What kind of a job can I find if I learn the PIC C programmi
Goto page 1, 2  Next
 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
Arakel



Joined: 06 Aug 2016
Posts: 107
Location: Moscow

View user's profile Send private message Visit poster's website AIM Address

What kind of a job can I find if I learn the PIC C programmi
PostPosted: Fri Feb 10, 2017 11:48 am     Reply with quote

Thanks to everyone for the help in advance! I understand that this is not a C question, but I want to ask what kind of a job can I find if I learn the PIC C programming?

Currently I can do this:

1. A program to demonstrate the use of a Shadow Register, to avoid read- write- modify problems
2. A program to demonstrate the use of the '?:' conditional statement in C
3. A program to debounce a switch with a counting algorithm, middle average (olympic average), crawling middle.
4. A reaction time program
5. A program to scan the values of an ADC and analog potentiometer and start a heater if they are different plus output the temperature from the sensor (LM335) to a 7 segment display with 2 digits, with PIC16F690.
6. A program to compare a voltage with the internal reference of 0.6V of PIC16F690 and start a LED through the built-in comparator 2.

I am working on unions, OPTION, STATUS register, testing flags. When I can I will start working with interfaces like SPI, I2C, Bluetooth, USB, wireless and wired communication?

What do you think I can find currently and normally? What should I look for?

I also know Assembly a bit, I was making programs in Assembly 5-7 years ago with Motorola 68HC11.
_________________
Yo! I love learning and technology! I just do not have experience so do not be angry if I ask a stupid question about a detail! From so much to remember sometimes I forget the details in order to remember the big problems!
temtronic



Joined: 01 Jul 2010
Posts: 9245
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Sat Feb 11, 2017 10:53 am     Reply with quote

Hmm..I've pondered this post since the reason I got into PICS 25+ years ago was Moto wouldn't sell me 68HC11s unless on the 'blue' list. Sounds like you have basic 'entry level' skills and need to expand them, as you already know. As for employment I have no idea, been 'retired' for 20+ years. I still have a million buck idea for a PIC, simple but useful. The problem with any 'micro' based product is 'market share'. Once your's is out there, anyone can easily copy/clone it, sell for 10cents less and your market is gone.
I almost took a job at local college teaching micros using PICs as the platform but then it was a union job...so I refused their real nice offer.

Maybe others who make a living PICking will reply, it is a valid question...

Jay
Arakel



Joined: 06 Aug 2016
Posts: 107
Location: Moscow

View user's profile Send private message Visit poster's website AIM Address

PostPosted: Sat Feb 11, 2017 11:46 am     Reply with quote

Sorry for not making things clear! What's the name of the job? So far I am looking for embedded programmer, junior and entry level of course. However I see a billion requirements that I don't know such as: embedded Linux programming, Autosar, Java, Python, Java cards, and I will add more later.

Motorola is a military company. The Motorola 6800 was so classified that even today they do not reveal what's inside. We only guess by the functions.

What do you suggest that I continue learning with? At the moment I learn pretty much the same for baseline, mid range and enhanced mid range pics. What else do I need to know in order to become an embedded programmer and to deal with microprocessor systems, both software and hardware?
_________________
Yo! I love learning and technology! I just do not have experience so do not be angry if I ask a stupid question about a detail! From so much to remember sometimes I forget the details in order to remember the big problems!
newguy



Joined: 24 Jun 2004
Posts: 1909

View user's profile Send private message

PostPosted: Sat Feb 11, 2017 7:07 pm     Reply with quote

You're starting to learn the basics, and that's good. I'd recommend that you get familiar with various sensors (analog and digital), the common bus formats like SPI, I2C, CAN, RS232 and RS485, which naturally leads into multi-processor systems. When you have multiple processors doing different things and communicating with each other, finding the root cause of a bug/failure can be challenging.

Next I'd recommend dipping your toes into the world of DSP (filtering), and start to explore that.

I've not mentioned other basic things like character LCD modules, some basic graphical LCDs, memory (serial EEPROMs, SD cards, etc) and of course USB. As someone here has mentioned many times, it's way easier to implement USB devices if you just buy an off-the-shelf chip such as the one available from FTDI.

USB then implies that you're talking with a PC, and that opens up a whole new can of worms.

Doing firmware also implies that you're familiar with hardware and can design schematics and lay out PCBs. Again, a whole new can of worms.

Firmware specialists sort of fall into 3 camps (my experience - others may have a different view):
- people who excel at low level embedded coding and nothing else;
- people who deal with low level embedded coding and PC side coding (either windows-based or Linux or both); and
- people who excel at low level embedded coding, overall system design, and are also hardware specialists.

The first type of person will do well in a very large company. The second type usually also will do well in a larger company, but opportunities exist at smaller firms. The last type of person can find a niche anywhere but are usually more valued/apt to work at a smaller firm where they're a "jack of all trades".

A large firm with a large suite of products is more prone to "compartmentalization" where someone can find work doing just firmware or just hardware or just PC software but nothing else. A smaller firm pretty much guarantees that you're going to be required to do a little bit of everything simply out of necessity because budgets are smaller and staffing levels are also smaller.

A lot depends on your personality. I hate staring at a computer all day. I like to "get my hands dirty" once in a while. I like soldering, I like using hand tools, I like stripping wire, I like creating schematics, I like laying out boards, I like writing firmware, I like dealing with field support issues.....in short, I like variety. You'll get that sort of freedom at a smaller firm. In a larger organization you're "pigeon-holed" into a more-or-less specialist role where it's the same story, day after day. Some people like that sort of repetition/security but I don't.

I'd recommend that you determine your dream job/position, then start to build your skills to hit that goal. Then tailor your job search to either smaller or larger organizations depending on what you want, but build the necessary skills first. I'm sure you have an idea for something useful that you wish you had but you can't afford or it just doesn't exist. Is that some sort of new device that requires some hardware and some firmware? Is it a computer program or a smartphone app? Is it a piece of hardware that would be extra cool or useful if it talked to a computer or an app?

Use your own need/imagination to build your skills. Use that experience to leverage that first job. Use that first job to build your skills and add new ones you didn't initially imagine. That will then leverage the next position, whether that is at the initial firm or at a new one. And so on. Just remember that the only constant in electronics or technology is change. Those that are open to new ideas and eager to pick up new skills (as you so obviously are) will be involved in tech roles in 10 years' time. Or 20 years. Or more. Be malleable and open to change and you'll thrive. Good luck.
benoitstjean



Joined: 30 Oct 2007
Posts: 566
Location: Ottawa, Ontario, Canada

View user's profile Send private message

PostPosted: Sun Feb 12, 2017 9:19 am     Reply with quote

Get your diploma, learn programming, learn electronics, spend time and invest money on your passion. Then apply at various companies and start at the bottom of the food chain - just get your foot in the door. But also, you must stand-out from the rest with your innovations, your skillsets, what you can do that others don't.

There are some like myself and probably lot of people on this forum who have spent countless hours (in my case, before I had children of course) playing with electronics, experimenting and "investing" money in components (I say "investing" rather than "wasting" because I was investing in my future, not wasting it!).

Reading asmboy's post above, he hit the nail bang-on. For myself, I fall in the third camp "low level embedded coding, overall system design, and are also hardware specialists"... and I'm also a "jack-of-all-trades" whether it's for my job or at home (tools, renovations, plumbing etc).

I've been passionate about electronics since the age of 8 and I stuck with that idea all my life and now that's what I do for a living. I am now in my 40's and I have a quite good paying job doing electronics, which includes programming and hardware design, in a big organization.

Good luck and as cheezy as it may sound, follow your dreams and don't let anything get in your way. Be ahead of the pack... I mean, you were the lucky one out of millions to be in this world so do the same with your career!

Ben
Arakel



Joined: 06 Aug 2016
Posts: 107
Location: Moscow

View user's profile Send private message Visit poster's website AIM Address

PostPosted: Sun Feb 12, 2017 12:52 pm     Reply with quote

newguy wrote:
You're starting to learn the basics, and that's good. I'd recommend that you get familiar with various sensors (analog and digital), the common bus formats like SPI, I2C, CAN, RS232 and RS485, which naturally leads into multi-processor systems. When you have multiple processors doing different things and communicating with each other, finding the root cause of a bug/failure can be challenging.

Next I'd recommend dipping your toes into the world of DSP (filtering), and start to explore that.

I've not mentioned other basic things like character LCD modules, some basic graphical LCDs, memory (serial EEPROMs, SD cards, etc) and of course USB. As someone here has mentioned many times, it's way easier to implement USB devices if you just buy an off-the-shelf chip such as the one available from FTDI.

USB then implies that you're talking with a PC, and that opens up a whole new can of worms.

Doing firmware also implies that you're familiar with hardware and can design schematics and lay out PCBs. Again, a whole new can of worms.

Firmware specialists sort of fall into 3 camps (my experience - others may have a different view):
- people who excel at low level embedded coding and nothing else;
- people who deal with low level embedded coding and PC side coding (either windows-based or Linux or both); and
- people who excel at low level embedded coding, overall system design, and are also hardware specialists.

The first type of person will do well in a very large company. The second type usually also will do well in a larger company, but opportunities exist at smaller firms. The last type of person can find a niche anywhere but are usually more valued/apt to work at a smaller firm where they're a "jack of all trades".

A large firm with a large suite of products is more prone to "compartmentalization" where someone can find work doing just firmware or just hardware or just PC software but nothing else. A smaller firm pretty much guarantees that you're going to be required to do a little bit of everything simply out of necessity because budgets are smaller and staffing levels are also smaller.

A lot depends on your personality. I hate staring at a computer all day. I like to "get my hands dirty" once in a while. I like soldering, I like using hand tools, I like stripping wire, I like creating schematics, I like laying out boards, I like writing firmware, I like dealing with field support issues.....in short, I like variety. You'll get that sort of freedom at a smaller firm. In a larger organization you're "pigeon-holed" into a more-or-less specialist role where it's the same story, day after day. Some people like that sort of repetition/security but I don't.

I'd recommend that you determine your dream job/position, then start to build your skills to hit that goal. Then tailor your job search to either smaller or larger organizations depending on what you want, but build the necessary skills first. I'm sure you have an idea for something useful that you wish you had but you can't afford or it just doesn't exist. Is that some sort of new device that requires some hardware and some firmware? Is it a computer program or a smart phone app? Is it a piece of hardware that would be extra cool or useful if it talked to a computer or an app?

Use your own need/imagination to build your skills. Use that experience to leverage that first job. Use that first job to build your skills and add new ones you didn't initially imagine. That will then leverage the next position, whether that is at the initial firm or at a new one. And so on. Just remember that the only constant in electronics or technology is change. Those that are open to new ideas and eager to pick up new skills (as you so obviously are) will be involved in tech roles in 10 years' time. Or 20 years. Or more. Be malleable and open to change and you'll thrive. Good luck.


I know this:
SPI, I2C, RS232 and RS485 except CAN. I know the interfaces but I don't know how to implement them with programming. If I had to guess I'd say there is some function or procedure in CCS and MPLABX. i need to start from the basics so I can fill the wholes in my knowledge. I know about master and secondary (slave) devices. But like I said filling the wholes in my knowledge like what comes after what is something that I need.

I know about DSP TigerShark. About 3 years ago I was: synthesizing signals, applying Fourier Discrete transformation, applying middle crawling filter, JPEG filter, grayscale effect, visualizing the signal in 3D form with VisualDSP++.

I have to check the serial EEPROM and parallel EEPROM. USB should be easy so this is what I might start with when I get to that level of programming. You probably mean RTOS about that I know we have something to return to the system and how to implement it with a microcontroller. (I wish there was a book that would guide me through the process of C programming for microcontrollers). The LCDs should be with some interface, maybe SPI or IIC. SD cards are too difficult for now.

For PCBs I have been using Cadence Orcad Capture (9.1 student version) and Pspice. I admit that there are unknown here to me like how much should be the length of the traces and maybe other things.

I want this one: "- people who excel at low level embedded coding, overall system design, and are also hardware specialists."

I love being able to decide on doing something and do it by myself.

I also love these things : soldering, working with tools, get up from the computer, make the PCBs by myself. I was soldering them once. I soldered this: A car charger with automatic stop when it reaches the set voltage. I was soldering other PCBs also and using solderless ones.

I intend to start with the first option, because I need to work something while I increase my skills. Plus I don't want to waste my time, I want to start somewhere and begin learning while I work, that way I learn at work and by myself. This is why when I see the billion requirements for an embedded programmer I think I might not be able to do it so I ask what do I need.

I want to make a smart house device by myself if possible with PIC18F67J60 and internal and after that the external J60 Ethernet adapter.

I need sort of a guide to follow so I can fill the holes in my knowledge and say with confidence: I can program microcontrollers and microprocessor.

Thank you for the help! It is useful.
_________________
Yo! I love learning and technology! I just do not have experience so do not be angry if I ask a stupid question about a detail! From so much to remember sometimes I forget the details in order to remember the big problems!
guy



Joined: 21 Oct 2005
Posts: 297

View user's profile Send private message Visit poster's website

PostPosted: Sun Feb 12, 2017 1:24 pm     Reply with quote

Hi Arakel! The fact that you learn CCS C and that you know this forum already puts you one step ahead of others. It's an easy C compiler to learn (it does a lot of things for you which you don't have to worry about) and there are a lot of drivers and libraries. Even USB - you don't have to know everything about it, just use the examples and modify them. It will take you a long way. The chip families you mentioned (base,mid and enhanced mid) will also be enough for a lot of tasks, and as long as you use CCS C you can easily migrate to the PIC18F and even 16-bit devices.

You may focus on different fields - communications, wireless, motor control, sensors and DSP, high power LEDs etc. I agree with benoitstjean - follow whatever interests you.
When I started with PICs I went to an electronics store which also took on projects, introduced myself, and left my phone number. At first they gave me simple timer projects which controlled relays for automation. Later I got more projects, more clients, and have never needed to advertise or 'chase' work. I suppose it has to do with luck, talent, and enjoying what you do.
True, there are numerous software jobs in Java, Python, Android etc. but over there the competition is much more intense and outsourcing to developing countries puts pressure on the salary. Embedded has always been more of a niche - more difficult to master (if you include hardware design, PCB layout, software-hardware debugging etc.) but more 'fun' and less competition.
Good luck!
Arakel



Joined: 06 Aug 2016
Posts: 107
Location: Moscow

View user's profile Send private message Visit poster's website AIM Address

PostPosted: Sun Feb 12, 2017 1:52 pm     Reply with quote

I don't believe such stores exist, where I am. But even if they do, they will start with a bluetooth, wireless, usb, smart house that can control everything.
_________________
Yo! I love learning and technology! I just do not have experience so do not be angry if I ask a stupid question about a detail! From so much to remember sometimes I forget the details in order to remember the big problems!
Gabriel



Joined: 03 Aug 2009
Posts: 1067
Location: Panama

View user's profile Send private message

PostPosted: Mon Feb 13, 2017 9:03 am     Reply with quote

I found a niche market in my country that i could automate with a Micro and currently have an army of little bots working for me... its not my main source of income but it will soon be.
I don't market the device, i market the service...like others here have said some chinese sweatshop can probably copy your device in 2 days and sell it for 100 dollars less. Copying a service is a different animal.

Most programming jobs i've seen are for web stuff and company software.
At least in my country, there is no engineering or development going on... i think i started one of the first companies that does.
If you live in the US, then risk it (while you can EI: single, no kids, etc), and try getting into a tech startup.

I'd get a "regular" job, and then start your own thing.
As long as i can, i will never go back to work for THE MAN.

G.
_________________
CCS PCM 5.078 & CCS PCH 5.093
asmallri



Joined: 12 Aug 2004
Posts: 1635
Location: Perth, Australia

View user's profile Send private message Send e-mail Visit poster's website

PostPosted: Mon Feb 13, 2017 6:14 pm     Reply with quote

Arakel wrote:
Motorola is a military company. The Motorola 6800 was so classified that even today they do not reveal what's inside. We only guess by the functions.


I don't know where this version of history came from (possibly an extract from "The man in the High Castle"). Motorola at the time of the 6800 was released, was a reputable semiconductor manufacturer. I designed systems using the 6800 and the publicly available information available for the chip and the entire family was on a par with, or better, than other vendors devices of that time.
_________________
Regards, Andrew

http://www.brushelectronics.com/software
Home of Ethernet, SD card and Encrypted Serial Bootloaders for PICs!!
Ttelmah



Joined: 11 Mar 2010
Posts: 19548

View user's profile Send private message

PostPosted: Tue Feb 14, 2017 2:58 am     Reply with quote

Dead right. In fact under an NDA, they even let us license the core to include inside a chip we were having made.
Arakel



Joined: 06 Aug 2016
Posts: 107
Location: Moscow

View user's profile Send private message Visit poster's website AIM Address

PostPosted: Thu Feb 16, 2017 1:10 am     Reply with quote

This is what I am trying to do also:

Quote:
I'd get a "regular" job, and then start your own thing.
As long as i can, i will never go back to work for THE MAN.


However I dont believe that here in Europe its possible. Or should I say its not possible to start from the beginning. I will need to do everything first and than maybe I might have some chance of someone hiring me.

As for motorola this is what I was told:

Motorola 6800, invented in order to help astronauts is the first processor by the military company Motorola and even now whats inside is kept a secret we only guess by the functions.
_________________
Yo! I love learning and technology! I just do not have experience so do not be angry if I ask a stupid question about a detail! From so much to remember sometimes I forget the details in order to remember the big problems!
Arakel



Joined: 06 Aug 2016
Posts: 107
Location: Moscow

View user's profile Send private message Visit poster's website AIM Address

PostPosted: Thu Feb 23, 2017 7:38 am     Reply with quote

I post one job requirement section for a C developer:

Requirements:
• Experienced with programming language C, PHP and Shell
• Good knowledge of databases - SQL or Oracle
• Knowledge of Web technologies (HTTP, HTML, XML, JSP/Servlet, JavaScript, SOAP)
• Knowledge of C++ & Python is a big plus
• Advanced English
_________________
Yo! I love learning and technology! I just do not have experience so do not be angry if I ask a stupid question about a detail! From so much to remember sometimes I forget the details in order to remember the big problems!
RF_Developer



Joined: 07 Feb 2011
Posts: 839

View user's profile Send private message

PostPosted: Thu Feb 23, 2017 8:27 am     Reply with quote

Arakel wrote:

Motorola 6800, invented in order to help astronauts is the first processor by the military company Motorola and even now whats inside is kept a secret we only guess by the functions.


This is wrong on many counts. As far as I can find out, the 6800 was never space qualifed and never flew on a spacecraft. Later variants were and did, but not the original 6800. The 6800 was reportedly developed in parallel with and in response to and in cdirect competition to Intel's development of the 8080. The 6800 had several selling points over the 8080, such as simpler clock requirements, fewer supply rails and simpler interfacing and a more constent instruction set (though arguably we had to wait for the 6809 for a "real" instruction set!)

Motorola was, by the the early seventies at least (the 6800 was developed from 1972 and released in 1974) not primarily a "military company". They certainly did work for military applications, as did practically every electronics company, but that does not make them a "military company". Motorola emerged out of radio and related work, again much like many electronics companies. In the seventies they were strongly considered as world leaders in solid-state RF devices: RF transistors. but by the seventies were strong in the primary electronic component market of the time: SSI and MSI digital ICs. It should come as no surprise, therefore, for them to be insturmental in the later development of technology that merged those two expertise areas: celluar mobile communictaions. While they no longer manufacture mobile phones, the name and reputation lies on. I have a Moto 4G in my pocket right now.

There is nothing secret or particulary special inside a 6800. It was wholly typical of the day, and architecturally typical of many larger computers too. It has been reverse engineered many times, and as other have pointed out, 6800-derived IP cores have been available for decades. Even the 68000 was nothing particularly special. Highly integrated certainly, but no "secret" or "magical", just great chip making! I have confidence in saying that the 6800 was never "classified". Right from the moment it appeared, it was fairly easily available and was used and programmed by every one, amateur and professional alike. Everything that it did, people knew about, talked about and reported on in the many popular electronics magazines of the day.

Certainly most production of some later variants would have been reserved for high profile customers (who probably paid for a significant proportion of the development costs), such as the 68HC11 Temtronic mentioned. Certainly some types were far more easy to get hold of, and thus more popular with amateurs and experimentors, than others.

So, not invented to "help astonauts", not really a "military company" and not kept a secret (indeed knowledge was spread very widely indeed).
newguy



Joined: 24 Jun 2004
Posts: 1909

View user's profile Send private message

PostPosted: Thu Feb 23, 2017 8:50 am     Reply with quote

Arakel wrote:
I post one job requirement section for a C developer:

Requirements:
• Experienced with programming language C, PHP and Shell
• Good knowledge of databases - SQL or Oracle
• Knowledge of Web technologies (HTTP, HTML, XML, JSP/Servlet, JavaScript, SOAP)
• Knowledge of C++ & Python is a big plus
• Advanced English


Nothing in that job posting mentions or requires embedded (low level) programming. This is more suited to the 2nd type of programmer I mentioned earlier: someone who is primarily a windows or Linux person who may or may not dabble in the low level embedded realm.
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group