Could someone give me what this actually means? I hear this a lot with software, but don't understand it.
Printable View
Could someone give me what this actually means? I hear this a lot with software, but don't understand it.
Usually it means programming for some non-computer device that has a microprocessor or microcontroller "embedded" in it. This small computer inside replaces what might have been done in the past by springs, gears, levers, cams, etc. or might not even have been possible in the past. Sometimes it is about data manipulation but can just as easily be almost anything else.
Could be a toy aircraft turning piezo accelerometer signals into steering moderation and flight stabilization. Could be a TV remote control. Could be almost anything.
also, smartphones programming
There are more than just "smartphones" too. There is a whole class called a "featurephone" that can be programmed and even the dumbest cellular phones run code inside these days.
To be honest, I'd argue that programming for SmartPhones isn't embedded programming at all. On a Smartphone your working with an operating system.
I was going to argue the same way. Any device can be made to host a program written by somebody else, even if it is a totally trivial program. For example, some advanced data loggers have a small amount of static RAM where a person can program in a sequence of logging events. Some of those data logger languages are fairly advanced. I would not consider the program that was written by the user of these data loggers to be embedded programming, but the program that hosts those user written scripts would certainly be embedded. Similarly, I wouldn't consider programming for a smart phone to be considered embedded programming.
On the other hand, the distinction clearly blurs. Any program that can host other programs would be an operating system, of a sort, but I wouldn't say that writing an OS is embedded programming, as I wouldn't say that Windows is an embedded program. On the other hand, any device that has a CPU and an interface could host programs written externally. At their simplest level, such devices might allow for external input, even if each instruction was entered individually. Chain a sequence of those instructions together and you have a program, and the device has a rudimentary OS.
In other words, there appears to be a steady continuum from devices that are coded to accept no input and just run a single program perpetually, up through PCs. I'm not sure that there is, any longer, a firm boundary between embedded and regular programming.
I agree with that except that it's not even a single continuum. It's a bunch of factors that all add up and, at the end of it, whether or not it's embedded is a subjective call. Here's a few (not very scientific) factors that people might consider:-
1. Does it come pre-installed on the device?
2. Is it concerned with controlling hardware?
3. Is it highly complex
The trouble is that you could find an exception to every one of those.
I want my toaster to be able to act as a phone. I don't care that it can make phone calls, I just want it to have the other features of a smart phone. I could then rig it on a catapult, and when my toast is done, it could call my phone, the two could figure out relative distances, and the catapult could be arranged on a base containing a PIC microprocessor to drive servo motors that would allow the catapult to be aimed and launched in such a way that the toast hit me right in the face. Now, THAT would be technology.
However, in all of that, I'm not sure that a single part of it would constitute embedded programming.
I would say that these days: It is embedded programming if you say it is embedded programming, but it will work best if you carry a large stick, and sufficiently sociopathic personality, to whack anybody who argues with you.
erm... do you own a dog called Grommit?Quote:
I want my toaster to be able to act as a phone. I don't care that it can make phone calls, I just want it to have the other features of a smart phone. I could then rig it on a catapult, and when my toast is done, it could call my phone, the two could figure out relative distances, and the catapult could be arranged on a base containing a PIC microprocessor to drive servo motors that would allow the catapult to be aimed and launched in such a way that the toast hit me right in the face. Now, THAT would be technology.
I only barely get the reference, and I thoroughly don't understand it. I've seen just one of those shows, and that was years ago.
example :
DOT NET MICRO FRAMEWORK
the netduino board is a micro controller (for robotic stuff) http://www.netduino.com/ with windows ce on in it's chip.
to work it download .NET Micro Framework 4.0 SDK from which works with Visual Basic 2010 Express (so I have read):
http://netmf.codeplex.com/releases/view/52340
or
http://www.microsoft.com/downloads/e...displaylang=en
code examples :
http://forums.netduino.com/index.php...f-now-in-beta/
Code:
vb Code:
Imports Microsoft.SPOT
Imports Microsoft.SPOT.Hardware
Imports SecretLabs.NETMF.Hardware
Imports SecretLabs.NETMF.Hardware.Netduino
Module Module1
Sub Main()
Dim led As New OutputPort(Pins.ONBOARD_LED, False)
Do
led.Write(True)
Thread.Sleep(250)
led.Write(False)
Thread.Sleep(250)
Loop
End Sub
End Module
vb Code:
[CODE]Imports Microsoft.SPOT Imports Microsoft.SPOT.Hardware Imports SecretLabs.NETMF.Hardware Imports SecretLabs.NETMF.Hardware.Netduino Module Module1 Sub Main() Dim Led As OutputPort = New OutputPort(Pins.ONBOARD_LED, False) Dim Button As InputPort = New InputPort(Pins.ONBOARD_SW1, False, ResistorModes.PullUp) Do While True Led.Write(Button.Read()) Loop End Sub End Module[/CODE]vb Code:
[CODE]Imports Microsoft.SPOT Imports Microsoft.SPOT.Hardware Imports SecretLabs.NETMF.Hardware Imports SecretLabs.NETMF.Hardware.Netduino Module Module1 Public led As OutputPort = New OutputPort(Pins.ONBOARD_LED, False) Sub Main() Dim button As InterruptPort = New InterruptPort(Pins.ONBOARD_SW1, False, Port.ResistorMode.PullUp, Port.InterruptMode.InterruptEdgeBoth) AddHandler button.OnInterrupt, AddressOf ButtonChange button.EnableInterrupt() Thread.Sleep(Timeout.Infinite) End Sub Sub ButtonChange(ByVal data1 As UInteger, ByVal data2 As UInteger, ByVal time As Date) If data2 = 0 Then led.Write(False) Else led.Write(True) End Sub End Module[/CODE]