# 11-1 Bard, Gerstlauer, Valvano, Yerraballi EE 319K Introduction to Embedded Systems Lecture 11: Data Acquisition, Numerical Fixed-Point Calculations, Lab.

## Presentation on theme: "11-1 Bard, Gerstlauer, Valvano, Yerraballi EE 319K Introduction to Embedded Systems Lecture 11: Data Acquisition, Numerical Fixed-Point Calculations, Lab."— Presentation transcript:

11-1 Bard, Gerstlauer, Valvano, Yerraballi EE 319K Introduction to Embedded Systems Lecture 11: Data Acquisition, Numerical Fixed-Point Calculations, Lab 8

11-2 Agenda  Recap  Sampling, Nyquist  Analog to Digital Conversion  Agenda  Exam 2 oPointers, Array and String Manipulation, FSMs  Data acquisition  Numerical fixed-point calculations  Lab 8 Bard, Gerstlauer, Valvano, Yerraballi

11-3 Exam 2 review  0) Being able to quickly design, implement, and debug assembly software  1) Understanding differences between data and address, being able to use pointers and indices  2) Understanding differences between 8-bit, 16-bit data and 32-bit data  3) Understanding differences between signed and unsigned integers  4) Programming if-then if-then-else for-loops while-loops and do-while-loops in assembly  5) Processing a variable-length array or string, either size first or terminating code at end  6) Addition subtraction multiplication and division

11-4 Exam 2 review  7) Shift left and right (signed and unsigned)  8) Call by value, call by reference, return by value  9) AAPCS Program conventions  Save and restore R4-R11,LR if you wish to modify  Parameter passing in registers R0,R1,R2,R3  All input parameters promoted to 32 bits  Return parameter in R0  10) Implementation of FSM using a linked data structure or using a table structure with an index  Mealy and Moore  Not a real port, so no bit-specific addressing  Read modify write sequences to be friendly (including input pin)  11) Accessing arrays and strings using pointers and indices  Stepping through two or more arrays at a time  8/16/32-bit data, signed/unsigned numbers

11-5 Exam 2 review  A) You may be given one or more variable length arrays of data, buf[i]  The size may be the first entry  There may be a termination code  The data may be 8-bit ASCII characters or integers  The integers may be 8 16 or 32 bits  Integers may be signed or unsigned  A pointer to this array may be passed in R0  You may be asked to deal with special cases: size=0, size too big, overflow

11-6 Exam 2 Array problems  Determine the size of the array  Return the first element of the array  Find the maximum or minimum element in an array  Find the sum of all the elements  Find the average of all the elements  Find the mode of all the elements  Find the range = maximum - minimum  Find the maximum or minimum slope (buf[i+1]-buf[i])  Find the maximum or minimum absolute value  Count the number of times a particular value occurs (buf[i]==1000)  Search for the occurrence of one string in another  Concatenate two strings together  Delete characters from a string  Insert one string into another  Move data from one place to another within an array or string  Sort the array (we will give the steps)

11-7 Exam 2 FSM problems  Convert a FSM graph to a linked data structure or table with an index  Write a Mealy FSM controller (with or without timer wait)  Write a Moore FSM controller (with or without timer wait)  It also may involve accessing a linked structure like Lab 5

11-8 Exam 2  Runs on your laptop  Keil in simulation (no board)  During exam: Keil, Keil help, PC calculator  Needs internet to download and upload  Battery power  Written in assembly (no C)  No SysTick, no interrupts  Overall grade a combination of  Numerical score from grader  Program style (reviewed later)  Tricking the grader is considered bad

11-9 Data Acquisition System (Lab 8)  Hardware  Transducer  Electronics  ADC  Software  ADC device driver  Timer routines  Output compare interrupts  LCD driver  Measurement system  How fast to update  Fixed-point number system  Algorithm to convert ADC into position Bard, Gerstlauer, Valvano, Yerraballi

11-10 Analog Input Device  Transducer – A device actuated by power from one system that supplies power in the same or other form to another system. Bard, Gerstlauer, Valvano, Yerraballi

11-11 Transducer Circuit  Position to voltage Bard, Gerstlauer, Valvano, Yerraballi

11-12 Data Acquisition System  Data flow graph Bard, Gerstlauer, Valvano, Yerraballi Position Sensor Voltage 0 to +3.3V ADC hardware ADC driver Sample 0 to 4095 SysTick ISR Sample 0 to 4095 SysTick hardware LCD display LCD driver Fixed-point 0 to 2.000 Position 0 to 2 cm main Mailbox

11-13 Data Acquisition System  Call graph Bard, Gerstlauer, Valvano, Yerraballi

11-15 Sampling Jitter  Definition of time-jitter, δ t :  Let n Δ t be the time a task is scheduled to be run and t n the time the task is actually run  Then δ t n = t n – n Δ t  Real time systems with periodic tasks, must have an upper bound, k, on the time-jitter  -k ≤ δ t n ≤ +k for all n Bard, Gerstlauer, Valvano, Yerraballi

11-16 Measurement  Resolution: Limiting factors  Transducer noise  Electrical noise  ADC precision  Software errors  Accuracy: Limiting factors  Resolution  Calibration  Transducer stability Average accuracy (with units of x) = Bard, Gerstlauer, Valvano, Yerraballi

11-17 Fixed-Point Revisited  Why: express non-integer values no floating point hardware support (want it to run fast)  When: range of values is known range of values is small  How: 1) variable integer, called I. may be signed or unsigned may be 8, 16 or 32 bits (precision) 2) fixed constant, called  (resolution) value is fixed, and can not be changed not stored in memory specify this fixed content using comments value  integer  Bard, Gerstlauer, Valvano, Yerraballi

11-18 Fixed-Point Numbers  The value of the fixed-point number: Fixed-point number  I Smallest value= I min , where I min is the smallest integer Largest value = I max , where I max is the largest integer  Decimal fixed-point, =10 m Decimal fixed-point number = I 10 m Nice for human input/output  Binary fixed-point, =2 m Binary fixed-point number = I 2 m Easier for computers to perform calculations Bard, Gerstlauer, Valvano, Yerraballi

11-19 Fixed-Point Math Example Consider the following calculation. C = 2**R The variables C, and R are integers 2 ≈ 6.283 C = (6283*R)/1000 Bard, Gerstlauer, Valvano, Yerraballi

11-20 Fixed-Point Math Example Calculate the volume of a cylinder V = *R 2 * L The variables are fixed-point R = I*2 -4 cmL = J*2 -4 cm V = K*2 -8 cm 3 2 ≈ 201*2 -5 K = (201*I*I*J)>>9 Bard, Gerstlauer, Valvano, Yerraballi

11-21 V in (V) Analog in N Digital out I (1 mV) Variable part LCD 000 0.000 0.751024750 0.750 1.520481500 1.500 2.2530722250 2.250 340963000 3.000  =0.001 V V in = 3N/4096how ADC works V in = I 0.001 definition of fixed point I = (3000*N)/4096 substitution I = (mN+b)/ 4096 calibrate to get m and b Bard, Gerstlauer, Valvano, Yerraballi Make a Voltmeter with ADC

11-22 Lab 8 Calibration Bard, Gerstlauer, Valvano, Yerraballi

Download ppt "11-1 Bard, Gerstlauer, Valvano, Yerraballi EE 319K Introduction to Embedded Systems Lecture 11: Data Acquisition, Numerical Fixed-Point Calculations, Lab."

Similar presentations