Top Banner
Embedded Programming B. Furman 09MAY2011
13

Embedded Programming

Mar 16, 2016

Download

Documents

Macy

Embedded Programming. B. Furman 09MAY2011. 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 - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Embedded Programming

Embedded Programming

B. Furman09MAY2011

Page 2: Embedded Programming

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

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

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

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

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

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

Code to Check for Discrete Events

Page 9: Embedded Programming

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

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

Event Detection with Hysteresis

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

Page 12: Embedded Programming

Code to Check for Events With Analog Quantities

Page 13: Embedded Programming

Main body of Events & Services Code