13
Embedded Programming B. Furman 09MAY2011

Embedded Programming B. Furman 09MAY2011. Learning Objectives Distinguish between procedural programming and embedded programming Explain the Events and

Embed Size (px)

DESCRIPTION

Mechatronics Concept Map Controller (Hardware & Software) System to Control Sensor Signal Conditioning Power Interface Actuator User Interface Power Source BJ Furman 22JAN11 ME 106 ME 154 ME 157 ME 195 ME 120 ME 297A ME 106 ME 120 ME 106 ME 190 ME 187 ME 110 ME 136 ME 154 ME 157 ME 182 ME 189 ME 195 ME 106 ME 120 ME 106 INTEGRATION

Citation preview

Page 1: Embedded Programming B. Furman 09MAY2011. Learning Objectives Distinguish between procedural programming and embedded programming Explain the Events and

Embedded Programming

B. Furman09MAY2011

Page 2: Embedded Programming B. Furman 09MAY2011. Learning Objectives Distinguish between procedural programming and embedded programming Explain the Events and

Learning Objectives Distinguish between procedural programming and

embedded programming Explain the Events and Services embedded programming

framework Explain what an Event is Explain what a Service is

Explain the key rule and its two corollaries Describe how an event checking routine works for

Discrete quantities Analog quantities

Develop code for: an event checking routine a service an event driven system

Page 3: Embedded Programming B. Furman 09MAY2011. Learning Objectives Distinguish between procedural programming and embedded programming Explain the Events and

Mechatronics Concept Map

Controller(Hardware & Software)

System toControl

Sensor

SignalConditioning

PowerInterface

Actuator

UserInterface

PowerSource

BJ Furman 22JAN11

ME 106ME 154ME 157ME 195

ME 120ME 297A

ME 106ME 120

ME 106ME 190ME 187

ME 110ME 136ME 154ME 157

ME 182ME 189ME 195

ME 106ME 120

ME 106

INTEGRATION

Page 4: Embedded Programming B. Furman 09MAY2011. Learning Objectives Distinguish between procedural programming and embedded programming Explain the Events and

Procedural vs. Embedded Programming Procedural

ME 30/CmpE 46 Computation and analysis

programs Mostly sequential

Start … End Known inputs and outputs

Program is in control Predictable operation and

timing

Embedded ME 106 Inputs and outputs can

occur at any time, in any order and are not predictable

Inputs can come from multiple sources

Sensors, user inputs, or internal (timer, ADC, etc.)

May handle simultaneous inputs and outputs

Program never ends

Page 5: Embedded Programming B. Furman 09MAY2011. Learning Objectives Distinguish between procedural programming and embedded programming Explain the Events and

Event Driven Program Structure Programming task divides into:

Checking for events Servicing events when they occur

Event A detectable change or transition in something of

interest Button press (before: not pressed, after: pressed) ADC complete flag bit set

Service An action taken in response to an event

Page 6: Embedded Programming B. Furman 09MAY2011. Learning Objectives Distinguish between procedural programming and embedded programming Explain the Events and

Requirements for Events and Services

The occurrence of events must be checked for continuously and often

Services must execute quickly and must be non-blocking Ex. Determine if a switch has closed

Blocking code: while(digitalRead(pin) == HIGH);

Page 7: Embedded Programming B. Furman 09MAY2011. Learning Objectives Distinguish between procedural programming and embedded programming Explain the Events and

Event Checkers for Discrete Events

Ex. Check that a switch has closed Pseudocode

IF switch is closed AND switch was open last time, THEN SwitchClosed event has occurred

ELSE SwitchClosed event has not occurred

Need to keep track of the state of the switch (i.e., maintain its history) Use a state variable Will need to be declared as a static local variable in the

function that checks for the event Need to retain the value between successive calls to the event

checking function

Page 8: Embedded Programming B. Furman 09MAY2011. Learning Objectives Distinguish between procedural programming and embedded programming Explain the Events and

Code to Check for Discrete Events

Page 9: Embedded Programming B. Furman 09MAY2011. Learning Objectives Distinguish between procedural programming and embedded programming Explain the Events and

Events involving an analog quantity

http://www.soe.ucsc.edu/classes/cmpe118/Winter08/LectureNotes/EventDrivenProg.pdf

A single-valued threshold will likely result in “chatter” when the quantify of interest is near the threshold

Page 10: Embedded Programming B. Furman 09MAY2011. Learning Objectives Distinguish between procedural programming and embedded programming Explain the Events and

Event Checkers for Events Involving Analog Quantities

Filtering the signal may help Add hysteresis in the event checker

Make the criteria for when the event occurs a variable instead of a fixed value Initially threshold is set to an upper value As soon as the signal crosses the threshold, the threshold is

dropped to a lower value Pseudocode:

Set threshold to high value IF var is greater than or equal to the threshold, THEN

Event has happened Set threshold to lower value

ELSE Event has not happened

Page 11: Embedded Programming B. Furman 09MAY2011. Learning Objectives Distinguish between procedural programming and embedded programming Explain the Events and

Event Detection with Hysteresis

http://www.soe.ucsc.edu/classes/cmpe118/Winter08/LectureNotes/EventDrivenProg.pdf

Page 12: Embedded Programming B. Furman 09MAY2011. Learning Objectives Distinguish between procedural programming and embedded programming Explain the Events and

Code to Check for Events With Analog Quantities

Page 13: Embedded Programming B. Furman 09MAY2011. Learning Objectives Distinguish between procedural programming and embedded programming Explain the Events and

Main body of Events & Services Code