Beginner with embedded development
Posted: Wed Dec 17, 2014 3:48 pm
Hi guys,
This is my very first post on any forum anywhere so please be gentle with me...
Please excuse the obvious noob questions but,
I'm used to industrial control logic and I thought I would have a look into embedded and have bought a crazyflie 2.0. In the VM when I open eclipse and browse to the crazyflie firmware, I'm so baffled that I don't even know which language the code is written in
From reading the forums, I get the impression that i'm not alone in this and my hope is that others can read this post and have a "light bulb" moment where things click into place a little bit.
I'll talk briefly about a (PLC ladder logic) control situation from work today and then how that relates to my questions and my presumed knowledge of how embedded might work:
So we had this problem where a pneumatic cylinder was pushing a roller against another roller at a certain point during a machine sequence and that was causing some of the product running between the two rollers to break. What we wanted to achieve was that the cylinder wouldn't operate until both rollers were stationary. The first thing we tried was to add an inverse contact saying that when the PLC output is allowing the Drive to run, Don't allow the cylinder to operate. This failed because although the drive was no longer "running" it was still decelerating so as soon as the contact dropped out for the drive the cylinder closed and the product broke.
After a little bit of research I found the the drive has a terminal that will output 24V whenever it is at "Zero Speed", we fed this 24V into a spare input on the PLC and wrote a line of code saying that the cylinder output may only come on when the "zero speed" input is on, and that was that!
I suppose what my question really is and what I hope others will benefit from is...
Am I totally misguided in thinking that on the Crazyflie, the code is saying to the controller "when input 0.00 gives a certain reading turn on output 10.00 to control an LED (or whatever)" and "if Input 01.04 is off but 01.05 is on then turn on bit 07 in register number 3 (or whatever)"
If that is the case (and I really hope I've not been THAT naive) then where in the firmware would I start to look for that kind of code and (sorry about this one) which language would it be written in.
P.S. I see various suffixes for the firmware files and wonder if for example .c means c++ code? I think I've seen: .c .h and .o
Thanks in advance for hopefully not castrating me for my ignorance
This is my very first post on any forum anywhere so please be gentle with me...
Please excuse the obvious noob questions but,
I'm used to industrial control logic and I thought I would have a look into embedded and have bought a crazyflie 2.0. In the VM when I open eclipse and browse to the crazyflie firmware, I'm so baffled that I don't even know which language the code is written in

From reading the forums, I get the impression that i'm not alone in this and my hope is that others can read this post and have a "light bulb" moment where things click into place a little bit.
I'll talk briefly about a (PLC ladder logic) control situation from work today and then how that relates to my questions and my presumed knowledge of how embedded might work:
So we had this problem where a pneumatic cylinder was pushing a roller against another roller at a certain point during a machine sequence and that was causing some of the product running between the two rollers to break. What we wanted to achieve was that the cylinder wouldn't operate until both rollers were stationary. The first thing we tried was to add an inverse contact saying that when the PLC output is allowing the Drive to run, Don't allow the cylinder to operate. This failed because although the drive was no longer "running" it was still decelerating so as soon as the contact dropped out for the drive the cylinder closed and the product broke.
After a little bit of research I found the the drive has a terminal that will output 24V whenever it is at "Zero Speed", we fed this 24V into a spare input on the PLC and wrote a line of code saying that the cylinder output may only come on when the "zero speed" input is on, and that was that!

I suppose what my question really is and what I hope others will benefit from is...
Am I totally misguided in thinking that on the Crazyflie, the code is saying to the controller "when input 0.00 gives a certain reading turn on output 10.00 to control an LED (or whatever)" and "if Input 01.04 is off but 01.05 is on then turn on bit 07 in register number 3 (or whatever)"
If that is the case (and I really hope I've not been THAT naive) then where in the firmware would I start to look for that kind of code and (sorry about this one) which language would it be written in.

P.S. I see various suffixes for the firmware files and wonder if for example .c means c++ code? I think I've seen: .c .h and .o
Thanks in advance for hopefully not castrating me for my ignorance