ECE 362 Lab Verification / Evaluation Form Experiment 5
|
|
- Kristin McKinney
- 5 years ago
- Views:
Transcription
1 ECE 362 Lab Verification / Evaluation Form Experiment 5 Evaluation: IMPORTANT! You must complete this experiment during your scheduled lab perior. All work for this experiment must be demonstrated and verified by your lab instructor before the end of your scheduled lab period. STEP DESCRIPTION MAX SCORE 4.0 Prelab Questions Turning on an LED A Level-Based Light Button A Simple LED Toggler An Embedded Reaction Timer 10 TOTAL 25 Signature of Evaluator: Student Name: Class #: - Signature: Date: Page 1 of 7
2 Experiment 5: Fundamentals of Embedded C 1.0 Introduction The initial portion of the semester has focused on developing microcontroller firmware in assembly. This is valuable as a learning exercise, and helps students to gain a greater understanding of what takes place under the hood of the microcontroller and compiler. In industry and in practice, however, embedded firmware is written in higher-level languages, such as C or C++. In this experiment, students will learn basics of writing embedded firmware using higher-level languages, and how the various constructs used in the assembly-based labs translate over into C. 2.0 Objectives 1. To understand fundamental programming techniques in C 2. To be able to translate between a piece of firmware written in assembly and one written in C 3.0 Equipment and Software 1. Standard ECE362 Software Toolchain (Installation instructions available in Experiment 0: Getting Started) 2. STM32F0-DISCOVERY development board (For procurement instructions, see Experiment 0: Getting Started) 4.0 Prelab 4.1 Read section 5 of this document for background information 4.2 Describe in logical operators (AND, OR, NOT, etc.) the process of setting individual bits in a register (without affecting other bits). 4.3 Describe in logical operators (AND, OR, NOT, etc.) the process of clearing individual bits in a register (without affecting other bits). 4.4 Describe in logical operators (AND, OR, NOT, etc.) the process of toggling individual bits in a register (without affecting other bits). 4.5 Describe the purpose of the extern keyword in C 5.0 Background 5.1 Unions and Structures One of the most important aspects of firmware is the ability to access the various system registers used by the microcontroller for configuring the array of peripherals which it provides. For example, one might wish to enable the system clock to the GPIOC peripheral, as a step in allowing programmatic Page 2 of 7
3 control of the system LEDs. In assembly language, the code to perform that operation might look something like this:.equ RCC, 0x equ AHBENR, 0x14 gpioconfig: #Activate GPIOC Clock in RCC Configuration ldr r5, =RCC ldr r6, =AHBENR ldr r0, [r5, r6] ldr r1, =0x orrs r0, r0, r1 str r0, [r5, r6] Fig. 1. Register Access (Assembly) Among the great advantages of C in comparison with Assembly are portability and convenience for improved programmer productivity. Having to know the exact memory locations of the various system registers needed to configure peripherals is a considerable roadblock to effective programming, and as the register locations may change from processor to processor, code written for one device may have to be rewritten to support a different device. To address these issues, device manufacturers such as STMicroelectronics provide peripheral libraries and header files which define items such as system registers in pre-made unions and structures for ease of use by the end programmer. With such library files included in one's code, a C code snippet for performing the same access as that of figure 1 might resemble the following: 5.2 Bit Manipulation in C RCC->AHBENR = 0x ; Fig 2. Register Access (C) Often times, instances will arise in which the values of individual bits in a register must be manipulated, without changing the values of the other bits in the register. C provides several bitwise operators for these purposes Setting Individual Bits Consider the scenario in which you wish to set a bit or bits without altering other bits. This can be done through the use of the bitwise OR ( ) operator: /* Set those bits in register which are equal to '1' in the * bitmask */ Register = Register Bitmask; Page 3 of 7
4 5.2.2 Clearing Individual Bits Register = Bitmask; Next, consider the scenario in which you wish to clear a bit or bits without altering other bits. This can be done through the use of the bitwise AND ( & ) operator: /* Clear those bits in the register which are equal to '0' * in the bitmask */ Register = Register & Bitmask; Register &= Bitmask; Performing a bitmask in this way can be counterintuitive. For clarity of code, it is often preferable to set the positions to be cleared with a '1', negating the bitmask, and then using that in the bitwise AND. C provides the bitwise NOT ( ~ ), or negation operator for this purpose: Thus, /* Define a bitmask */ Bitmask = b ; Bitmask2 = ~(Bitmask); /* Bitmask2 == b */ /* Clear those bits in the register which are equal to '1' * in the bitmask */ Register = Register & ~(Bitmask); Register &= ~(Bitmask); Toggling Individual Bits On other occasions, it may be desirable to 'toggle' individual bits (that is to say, clear bits which are read as '1' and set those which are read as '0'). An example of when such a function might be used is in creating a light blinker, where the present state of a bit (such as one corresponding to a digital output state) is not necessarily known. This can be done through use of the bitwise XOR ( ^ ) operator: /* Toggle those bits in the register which are equal to '1' * in the bitmask */ Register = Register ^ Bitmask; Page 4 of 7
5 Register ^= Bitmask; 5.3 Interrupts in C In experiment 4, students created interrupt service routines in assembly. This was done by defining a global label for the ISR which corresponds to its entry within the vector table. Next, students would redefine the weak vector table mapping to the default handler, directing the mapping instead to the ISR which they had created. In C, this process can be made considerably simpler. After initializations, the timer 2 interrupt service routine resembles the following: extern void TIM2_IRQHandler() { //Timer 2 ISR code goes here } Note the use of the extern compiler keyword. This informs the compiler that the function TIM2_IRQHandler is defined outside of the current file (in this case, TIM2_IRQHandler is defined in the device startup assembly file, alongside all of the other interrupt service routine names defined in the vector table). In using interrupts in C for the STM32F0, be sure to utilize the ISR names defined in the startup assembly file vector table. 5.4 Header Guards The assembly firmware written in the course up to this point has been fairly simple, with the majority of the code written in a single, large assembly file. With the advent of C, however, programs will become substantially more complex, and code will be spread across multiple files. C makes this simple and straightforward, through the use of header files and the #include directive. A minor wrinkle arises, however, with issues of inclusion. Suppose we have a simple include file, include.h, which defines a simple C struct, as shown: File include.h : struct foo { int member; }; In C and other high-level languages, it is possible to nest files hierarchically. Thus, imagine the project includes a second header file, include2.h, which references include.h : File include2.h : #include "include.h" Finally, both include files are referenced within the C code of the project: File main.c : #include "include.h" #include "include2.h" Page 5 of 7
6 In this situation, known as double inclusion, the file main.c has indirectly included two copies of the header file include.h, resulting in two identical definitions of the structure type foo. This is a violation of fundamental C principles, and will result in a compiler error. The solution to inclusion issues such as double inclusion is the usage of what are referred to as header guards. Revisiting the file include.h, suppose we define the file conditionally, as follows: File include.h (revised): #ifndef INCLUDE_H #define INCLUDE_H struct foo { int member; }; #endif The compiler directive #ifndef is a conditional directive, read as if not defined. In this case, the compiler looks to see if a given macro (INCLUDE_H, in the above example) has been defined. If not, then all of the code between #ifndef and #endif is included into the compiled C code. The next line immediately below the definition test defines the macro in question. In this way, the first instance of include.h will define the macro in question and include all of the relevant source code. For any future attempts to include the same code within a given C project, however, the definition test will fail (INCLUDE_H is already defined), and the code in question will be skipped. 6.0 Experiment For this experiment, students will be recreating code examples from experiments 3 and 4, using C instead of assembly. Note that when writing C code, use of hardware abstraction layer (HAL) functions is prohibited and code examples using HAL functions will not receive credit for demonstration; students may and are encouraged to use the unions and structures provided in STM header files, as per figure 2 of this document. 6.1 Turning on an LED Recreate in C the assembly code snippet of problem 6.1 of experiment 3. For a reminder, the code Description: Write a piece of code which configures the microcontroller pin corresponding to LD4 (blue LED) on the STM32F0 discovery board as a standard digital output. Once configured, output a logic 1 on this pin, lighting up the blue LED. 6.2 A Level-Based Light Button Recreate in C the assembly code snippet of problem 6.3 of experiment 3. For a reminder, the Page 6 of 7
7 Description: Write a piece of code which configures the microcontroller pins for B1 (blue button) as a standard digital input, and LD3 and LD4 (the blue and green LEDs) as standard digital outputs. Once done, your code segment should activate the blue LED when button B1 is not pressed (green LED should not be lit). When button B1 is pressed, the blue LED should be turned off and the green LED should be turned on. 6.3 A Simple LED Toggler Recreate in C the assembly code snippet of problem 6.3 of experiment 4. For a reminder, the Description: With user LED LD3 initially off, create a program which toggles LD3 upon pressing user pushbutton B1 (push once to turn it on, again to turn it off, and so on). The timer 2 update interrupt should fire every 5ms, and the code should perform proper button debouncing. 6.4 An Embedded Reaction Timer Recreate in C the assembly code snippet of problem 6.4 of experiment 4. For a reminder, the Description: Create a simple reaction timer. The timer is started when the user presses user pushbutton B1. It then counts out 5 seconds. At the end of 5 seconds, the program should light user LED LD4. During the running of the program, the program should track presses of button B1. If the user presses button B1 within half a second of the 5 second goal (4.5s 5.5s), the program should light user LED LD3. Should the user press the button too early or too late, or if 10 seconds has passed, the program should perform 2 subsequent 1-second flashes of user LED LD3, then turn the LED off. Once a victory or loss has occurred, a subsequent press of B1 should reset the reaction timer and allow the user to play again. 7.0 Sources Cited [1] Wikipedia. Include Guard. [Online] Available: Page 7 of 7
ECE 362 Lab Verification / Evaluation Form Experiment 3
ECE 362 Lab Verification / Evaluation Form Experiment 3 Evaluation: IMPORTANT! You must complete this experiment during your scheduled lab perior. All work for this experiment must be demonstrated and
More informationECE 362 Experiment 4: Interrupts
ECE 362 Experiment 4: Interrupts 1.0 Introduction Microprocessors consistently follow a straight sequence of instructions, and you have likely only worked with this kind of programming until now. In this
More informationECE 362 Experiment 3: General Purpose I/O
ECE 362 Experiment 3: General Purpose I/O 1.0 Introduction In this experiment, you will learn how to attach simple input devices (pushbuttons) and simple output devices (LEDs) to an STM32 development board.
More informationEmbedded C. ECE Rick
Embedded C ECE 362 https://engineering.purdue.edu/ee362/ Rick Reading Assignment Reading assignment: Family Reference Manual, Chapter 17, "General purpose timers (TIM2 and TIM3)", pages 377 443. Textbook,
More informationUNIVERSITY OF CALIFORNIA, SANTA CRUZ BOARD OF STUDIES IN COMPUTER ENGINEERING CMPE13/L: INTRODUCTION TO PROGRAMMING IN C SPRING 2013
Introduction Reading Concepts UNIVERSITY OF CALIFORNIA, SANTA CRUZ BOARD OF STUDIES IN COMPUTER ENGINEERING CMPE13/L: INTRODUCTION TO PROGRAMMING IN C SPRING 2013 Lab 2 Bouncing LEDs In this lab, you will
More informationELEC 3040/3050 Lab Manual Lab 2 Revised 8/20/14. LAB 2: Developing and Debugging C Programs in MDK-ARM for the STM32L100RC Microcontroller
LAB 2: Developing and Debugging C Programs in MDK-ARM for the STM32L100RC Microcontroller The objective of this laboratory session is to become more familiar with the process for creating, executing and
More informationBy the end of Class. Outline. Homework 5. C8051F020 Block Diagram (pg 18) Pseudo-code for Lab 1-2 due as part of prelab
By the end of Class Pseudo-code for Lab 1-2 due as part of prelab Homework #5 on website due before next class Outline Introduce Lab 1-2 Counting Timers on C8051 Interrupts Laboratory Worksheet #05 Copy
More informationC Language Programming
Experiment 2 C Language Programming During the infancy years of microprocessor based systems, programs were developed using assemblers and fused into the EPROMs. There used to be no mechanism to find what
More informationEL6483: Brief Overview of C Programming Language
EL6483: Brief Overview of C Programming Language EL6483 Spring 2016 EL6483 EL6483: Brief Overview of C Programming Language Spring 2016 1 / 30 Preprocessor macros, Syntax for comments Macro definitions
More informationEECS 373 Midterm Winter 2013
EECS 373 Midterm Winter 2013 Name: unique name: Sign the honor code: I have neither given nor received aid on this exam nor observed anyone else doing so. Scores: # Page Points 2 /15 3 /20 4 /12 5 /13
More informationAN4515 Application note
Application note Using Batch Acquisition Mode (BAM) to maximize power efficiency on STM32F410/411/412 microcontroller lines Introduction The STM32F410, STM32F411 and STM32F412 lines are part of the STM32
More informationECE383: Microcomputers Lab 6 Basic and Finite State Machine LED and Switch I/O Programming
ECE383: Microcomputers Lab 6 Basic and Finite State Machine LED and Switch I/O Programming Goals: The goals of this lab are to continue to instruct students in a PIC24-based hardware system using PIO ports
More informationSOME ASSEMBLY REQUIRED
SOME ASSEMBLY REQUIRED Assembly Language Programming with the AVR Microcontroller TIMOTHY S. MARGUSH CRC Press Taylor & Francis Group CRC Press is an imprint of the Taylor & Francis Croup an Informa business
More informationAN4045 Application note
Application note STM32F3 series in-application programming (IAP) using the USART Introduction An important requirement for most Flash-memory-based systems is the ability to update the firmware when installed
More informationAN3268 Application note
Application note STM32VLDISCOVERY firmware package Introduction The purpose of this application note is to describe the STM32VLDISCOVERY package structure and provide short descriptions of: STM32VLDISCOVERY
More informationXC2287M HOT Getting Started Exercise 1 Get familiar with the tool chain and uses a timer triggered LED toggle
XC2287M HOT Getting Started Exercise 1 Get familiar with the tool chain and uses a timer triggered LED toggle Device: XC2287M-104F80 Compiler: Tasking Viper 2.4r1 Code Generator: DAvE 2.1 Getting Started
More informationHands-On with STM32 MCU Francesco Conti
Hands-On with STM32 MCU Francesco Conti f.conti@unibo.it Calendar (Microcontroller Section) 07.04.2017: Power consumption; Low power States; Buses, Memory, GPIOs 20.04.2017 21.04.2017 Serial Interfaces
More informationSlide Set 5. for ENCM 339 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary
Slide Set 5 for ENCM 339 Fall 2016 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary October 2016 ENCM 339 Fall 2016 Slide Set 5 slide 2/32
More informationOne 32-bit counter that can be free running or generate periodic interrupts
PSoC Creator Component Datasheet Multi-Counter Watchdog (MCWDT_PDL) 1.0 Features Configures up to three counters in a multi-counter watchdog (MCWDT) block Two 16-bit counters that can be free running,
More informationNewbie s Guide to AVR Interrupts
Newbie s Guide to AVR Interrupts Dean Camera March 15, 2015 ********** Text Dean Camera, 2013. All rights reserved. This document may be freely distributed without payment to the author, provided that
More informationPAC52XX GPIO Peripheral Firmware Design
APPLICATION NOTE PAC52XX GPIO Peripheral Firmware Design TM Marc Sousa Senior Manager, Systems and Firmware www.active-semi.com Copyright 2014 Active-Semi, Inc. TABLE OF CONTENTS APPLICATION NOTE... 1
More informationEECS 461 Winter 2009 Lab 1: Familiarization and Digital I/O
EECS 461 Winter 2009 Lab 1: 1 Overview The purpose of this lab is to familiarize you with the hardware and software used in EECS 461. For this class we will be using a 32-bit floating-point Freescale MPC5553
More informationE85 Lab 8: Assembly Language
E85 Lab 8: Assembly Language E85 Spring 2016 Due: 4/6/16 Overview: This lab is focused on assembly programming. Assembly language serves as a bridge between the machine code we will need to understand
More informationBASICS OF THE RENESAS SYNERGY TM
BASICS OF THE RENESAS SYNERGY TM PLATFORM Richard Oed 2018.11 02 CHAPTER 9 INCLUDING A REAL-TIME OPERATING SYSTEM CONTENTS 9 INCLUDING A REAL-TIME OPERATING SYSTEM 03 9.1 Threads, Semaphores and Queues
More informationSISTEMI EMBEDDED. The C Pre-processor Fixed-size integer types Bit Manipulation. Federico Baronti Last version:
SISTEMI EMBEDDED The C Pre-processor Fixed-size integer types Bit Manipulation Federico Baronti Last version: 20160302 The C PreProcessor CPP (1) CPP is a program called by the compiler that processes
More informationMICROPROCESSORS A (17.383) Fall Lecture Outline
MICROPROCESSORS A (17.383) Fall 2010 Lecture Outline Class # 03 September 21, 2010 Dohn Bowden 1 Today s Lecture Syllabus review Microcontroller Hardware and/or Interface Programming/Software Lab Homework
More informationSTM32SnippetsL0. STM32L0xx Snippets firmware package. Features. Description
STM32L0xx Snippets firmware package Data brief Features Complete free C source code firmware examples for STM32L0xx microcontrollers Basic examples using direct-access registers as defined in CMSIS Cortex
More informationAN10254 Philips ARM LPC microcontroller family
Rev. 02 25 October 2004 Application note Document information Info Content Keywords ARM LPC, Timer 1 Abstract Simple interrupt handling using Timer 1 peripheral on the ARM LPC device is shown in this application
More informationChapter 11: Interrupt On Change
Chapter 11: Interrupt On Change The last two chapters included examples that used the external interrupt on Port C, pin 1 to determine when a button had been pressed. This approach works very well on most
More informationCapable of adjusting detection timings for start bit and data bit
PSoC Creator Component Datasheet Remote Control (PDL_RC) 1.0 Features Up to 2 Channels HDMI-CEC/ High Definition Multimedia Interface Consumer Electronics Control transmitter/receiver SIRCS/Sony Infrared
More informationW7200 User s Guide. for STM32F10x Standard Library. - USART - GPIO - Timer. Version 1.0.0e
W7200 User s Guide for STM32F10x Standard Library - USART - GPIO - Timer Version 1.0.0e 2013 WIZnet Co., Inc. All Rights Reserved. For more information, visit our website at http://www.wiznet.co.kr Table
More informationExperiment 3. Interrupts. Hazem Selmi, Ahmad Khayyat
Experiment 3 Interrupts Hazem Selmi, Ahmad Khayyat Version 162, 24 February 2017 Table of Contents 1. Objectives........................................................................................
More informationCSE3215 Embedded Systems Laboratory
CSE3215 Embedded Systems Laboratory Lab3 Reaction Time Measurement Introduction Human reaction time is a parameter of interest in many psychological and physiological studies of the effects of drugs, stress,
More informationL2 - C language for Embedded MCUs
Formation C language for Embedded MCUs: Learning how to program a Microcontroller (especially the Cortex-M based ones) - Programmation: Langages L2 - C language for Embedded MCUs Learning how to program
More informationSISTEMI EMBEDDED. The C Pre-processor Fixed-size integer types Bit Manipulation. Federico Baronti Last version:
SISTEMI EMBEDDED The C Pre-processor Fixed-size integer types Bit Manipulation Federico Baronti Last version: 20170307 The C PreProcessor CPP (1) CPP is a program called by the compiler that processes
More informationDeveloping Reusable Device Drivers for MCU's
Embedded Systems Conference East 2012 Page 1 of 20 Developing Reusable Device Drivers for MCU's By Jacob Beningo www.beningo.com http://www.linkedin.com/in/jacobbeningo twitter : Jacob_Beningo EDN Blog
More informationINTERRUPTS in microprocessor systems
INTERRUPTS in microprocessor systems Microcontroller Power Supply clock fx (Central Proccesor Unit) CPU Reset Hardware Interrupts system IRQ Internal address bus Internal data bus Internal control bus
More informationFaculty of Engineering and Information Technology Embedded Software. Lab 3 Interrupts and Timers
Faculty of Engineering and Information Technology Subject: 48434 Embedded Software Assessment Number: 3 Assessment Title: Lab 3 Interrupts and Timers Tutorial Group: Students Name(s) and Number(s) Student
More informationEECS 373 Fall 2018 Homework #3
EECS 373 Fall 2018 Homework #3 Answers 1) Loaders, Linkers and Executables a) In straightforward English, explain the role of a linker. [7 points] A linker receives object files as input and must emit
More informationGetting started with MotionPM real-time pedometer library in X-CUBE-MEMS1 expansion for STM32Cube
User manual Getting started with MotionPM real-time pedometer library in X-CUBE-MEMS1 expansion for STM32Cube Introduction The MotionPM is a middleware library part of X-CUBE-MEMS1 software and runs on
More information,$5$SSOLFDWLRQ1RWH$95 (IILFLHQWSURJUDPPLQJRI$WPHO V $95 PLFURFRQWUROOHUV
,$5$SSOLFDWLRQ1RWH$95 (IILFLHQWSURJUDPPLQJRI$WPHO V $95 PLFURFRQWUROOHUV 6XPPDU\ This application note provides some useful hints on how to program the Atmel AVR microcontrollers using the IAR Compiler.
More informationUM2350. Getting started with MotionPW real-time pedometer for wrist library in X-CUBE-MEMS1 expansion for STM32Cube. User manual.
User manual Getting started with MotionPW real-time pedometer for wrist library in X-CUBE-MEMS1 expansion for STM32Cube Introduction The MotionPW middleware library is part of the X-CUBE-MEMS1 software
More informationUM2092 User manual. Basic metrology firmware for the STM32F103RD and the STPM32 devices. Introduction
User manual Basic metrology firmware for the STM32F103RD and the STPM32 devices Introduction The following document describes a firmware for the STM32F103RD microcontroller to manage the STPM32 metrology
More informationSISTEMI EMBEDDED. The C Pre-processor Fixed-size integer types Bit Manipulation. Federico Baronti Last version:
SISTEMI EMBEDDED The C Pre-processor Fixed-size integer types Bit Manipulation Federico Baronti Last version: 20180312 The C PreProcessor CPP (1) CPP is a program called by the compiler that processes
More informationAN3281 Application note
Application note STM8 8-bit MCUs I 2 C optimized examples Introduction This document describes how to use the following I 2 C optimized examples: Hardware configuration example of a common I 2 C bus Master
More informationUM2045 User manual. Getting started with the X-CUBE-NFC3 near field communication transceiver software expansion for STM32Cube.
User manual Getting started with the X-CUBE-NFC3 near field communication transceiver software expansion for STM32Cube Introduction This document describes how to get started with the X-CUBE-NFC3 software
More informationC++ Style Guide. 1.0 General. 2.0 Visual Layout. 3.0 Indentation and Whitespace
C++ Style Guide 1.0 General The purpose of the style guide is not to restrict your programming, but rather to establish a consistent format for your programs. This will help you debug and maintain your
More informationFinal Exam. Date: May 12, 2017
Final Exam Date: May 12, 2017 UT EID: Printed Name: Last, First Your signature is your promise that you have not cheated and will not cheat on this exam, nor will you help others to cheat on this exam:
More informationUM2276. Getting started with MotionSD standing vs sitting desk detection library in X-CUBE-MEMS1 expansion for STM32Cube. User manual.
User manual Getting started with MotionSD standing vs sitting desk detection library in X-CUBE-MEMS1 expansion for STM32Cube Introduction The MotionSD middleware library is part of the X-CUBE-MEMS1 software
More informationMechatronics Laboratory Assignment #1 Programming a Digital Signal Processor and the TI OMAPL138 DSP/ARM
Mechatronics Laboratory Assignment #1 Programming a Digital Signal Processor and the TI OMAPL138 DSP/ARM Recommended Due Date: By your lab time the week of January 29 th Possible Points: If checked off
More informationInterrupt handling. Purpose. Interrupts. Computer Organization
Namn: Laborationen godkänd: Computer Organization Interrupt handling Purpose The purpose of this lab assignment is to give an introduction to interrupts, i.e. asynchronous events caused by external devices
More informationSTM32F1xx motor-control firmware for dspin. Quick guide
STM32F1xx motor-control firmware for dspin Quick guide 2 STM32F1xx firmware for dspin STM32F1xx firmware allows you to control L6470 dspin micro-stepping motor driver via STM32F1 MCU. This firmware supports
More informationAN4464 Application note
Application note Porting a Green Hills SW to SPC5Studio Introduction SPC5Studio provides a comprehensive framework to design, build and deploy embedded applications for SPC56 Power Architecture 32-bit
More informationMicrocontroller VU
136 182.694 Microcontroller VU Kyrill Winkler SS 2014 Featuring Today: Structured C Programming Weekly Training Objective Already done 3.1.1 C demo program 3.1.3 Floating point operations 3.3.2 Interrupts
More informationPre-Lab due: at 3 p.m. Post-Lab due: at 5 p.m. Name:... Forename:... Initials:...
151-0593-00 Embedded Control Systems (Fall 2018) Lab 1 Topic: Familiarization and Digital I/O Pre-Lab due: 10. 09. 18 at 3 p.m. Post-Lab due: 11. 09. 18 at 5 p.m. Name:... Forename:... Initials:... marianne.schmid@idsc.mavt.ethz.ch,
More informationECE251: Thursday September 27
ECE251: Thursday September 27 Exceptions: Interrupts and Resets Chapter in text and Lab #6. READ ALL this material! This will NOT be on the mid-term exam. Lab Practical Exam #1 Homework # due today at
More informationBase Timer Channel (BT) Features. General Description. When to Use a PDL_BT Component 1.0
1.0 Features Four operating modes 16-bit PWM Timer 16-bit PPG Timer 16/32-bit Reload Timer 16/32-bit PWC Timer Trigger generation for ADC conversion General The Peripheral Driver Library (PDL) Base Timer
More informationEmbedded Systems and Software
Embedded Systems and Software Potpourri & Notes on Lab 2 Artist's concept of Mars Exploration Rover. Courtesy NASA Lab 2 Notes Slide 1 The AVR Assembler We use the AVRASM2 assembler that comes with AVR
More informationBASICS OF THE RENESAS SYNERGY PLATFORM
BASICS OF THE RENESAS SYNERGY PLATFORM TM Richard Oed 2017.12 02 CHAPTER 9 INCLUDING A REAL-TIME OPERATING SYSTEM CONTENTS 9 INCLUDING A REAL-TIME OPERATING SYSTEM 03 9.1 Threads, Semaphores and Queues
More informationUM2194. Getting started with MotionAW activity recognition for wrist library in X-CUBE-MEMS1 expansion for STM32Cube. User manual.
User manual Getting started with MotionAW activity recognition for wrist library in X-CUBE-MEMS1 expansion for STM32Cube Introduction The MotionAW is a middleware library part of X-CUBE-MEMS1 software
More informationSTM32F3 Hands-On Workshop
STM32F3 Hands-On Workshop Ensure you picked-up Welcome Hands-On 2 USB Flash Drive with STM32F3 Discovery Kit Contents USB Cable STM32F3-Discovery Kit will be provided after software is loaded Keil uvision
More informationSoftware debouncing of buttons
Software debouncing of buttons snigelen February 5, 2015 1 Introduction Connecting a button as an input to a micro-controller is a relatively easy task, but there are some problems. The main problem is
More informationLab #4: GPIOs in Assembly Language Week of 18 February 2019
ECE271: Microcomputer Architecture and Applications University of Maine Lab #4: GPIOs in Assembly Language Week of 18 February 2019 Goals 1. Learn Thumb-2 Assembly Language Pre-lab 1. Complete the pre-lab
More informationEE475 Lab #3 Fall Memory Placement and Interrupts
EE475 Lab #3 Fall 2005 Memory Placement and Interrupts In this lab you will investigate the way in which the CodeWarrior compiler and linker interact to place your compiled code and data in the memory
More informationExternal memory code execution on STM32F7x0 Value line and STM32H750 Value line MCUs
Application note External memory code execution on STM32F7x0 Value line and STM32H750 Value line MCUs Introduction There is an increased demand for applications able to support new and complex features,
More informationEMBEDDED SOFTWARE DEVELOPMENT. George Hadley 2017, Images Property of their Respective Owners
EMBEDDED SOFTWARE DEVELOPMENT George Hadley 2017, Images Property of their Respective Owners OUTLINE Embedded vs. General Purpose Programming Layers of Abstraction (Hardware, Interface, Application) Embedded
More informationFundamental concept in computation Interrupt execution of a program to handle an event
Interrupts Fundamental concept in computation Interrupt execution of a program to handle an event Don t have to rely on program relinquishing control Can code program without worrying about others Issues
More informationUsing the Digital I/O interface of STMicroelectronics STM32 Microcontrollers
Using the Digital I/O interface of STMicroelectronics STM32 Microcontrollers ARSLAB - Autonomous and Robotic Systems Laboratory Dipartimento di Matematica e Informatica - Università di Catania, Italy santoro@dmi.unict.it
More informationSTM8AF6213 STM8AF6223/26 Errata sheet
STM8F6213 STM8F6223/26 Errata sheet Device limitations for STM8F62xx automotive MCUs featuring up to 8 Kbytes of Flash program memory Silicon identification This errata sheet applies to the STMicroelectronics
More informationUNIVERSITY OF CONNECTICUT. ECE 3411 Microprocessor Application Lab: Fall Lab Test III
Department of Electrical and Computing Engineering UNIVERSITY OF CONNECTICUT ECE 3411 Microprocessor Application Lab: Fall 2015 Lab Test III There are 2 longer programming problems in this test. There
More informationENGR 40M Project 3c: Switch debouncing
ENGR 40M Project 3c: Switch debouncing For due dates, see the overview handout 1 Introduction This week, you will build on the previous two labs and program the Arduino to respond to an input from the
More informationUNIVERSITY OF CONNECTICUT. ECE 3411 Microprocessor Application Lab: Fall Quiz IV
Department of Electrical and Computing Engineering UNIVERSITY OF CONNECTICUT ECE 3411 Microprocessor Application Lab: Fall 2015 Quiz IV There is 1 questions in this quiz. There are 15 pages in this quiz
More informationUsing the TASKING Software Platform for AURIX
Using the TASKING Software Platform for AURIX MA160-869 (v1.0) November 13, 2017 Copyright 2017 TASKING BV. All rights reserved. You are permitted to print this document provided that (1) the use of such
More informationAN3980 Application note
Application note STM32 firmware library for dspin L6470 1 Introduction This application note describes the implementation of the STM32 firmware library for the dspin stepper motor control product (L6470).
More informationECE 354 Computer Systems Lab II. Interrupts, Strings, and Busses
ECE 354 Computer Systems Lab II Interrupts, Strings, and Busses Fun Fact Press release from Microchip: Microchip Technology Inc. announced it provides PICmicro field-programmable microcontrollers and system
More informationELC4438: Embedded System Design ARM Cortex-M Architecture II
ELC4438: Embedded System Design ARM Cortex-M Architecture II Liang Dong Electrical and Computer Engineering Baylor University Memory system The memory systems in microcontrollers often contain two or more
More informationLaboratory Exercise 7
Laboratory Exercise 7 Using Interrupts with C code The purpose of this exercise is to investigate the use of interrupts for the Nios II processor, using C code. To do this exercise you need to have a good
More informationMicrium OS Kernel Labs
Micrium OS Kernel Labs 2018.04.16 Micrium OS is a flexible, highly configurable collection of software components that provides a powerful embedded software framework for developers to build their application
More informationECE 354 Introduction to Lab 2. February 23 rd, 2003
ECE 354 Introduction to Lab 2 February 23 rd, 2003 Fun Fact Press release from Microchip: Microchip Technology Inc. announced it provides PICmicro field-programmable microcontrollers and system supervisors
More informationLecture test next week
Lecture test next week Write a short program in Assembler doing. You will be given the print outs of all the assembler programs from the manual You can bring any notes you want Today: Announcements General
More informationProcessor and compiler dependent
Fundamental concept in computation Interrupt execution of a program to handle an event Don t have to rely on program relinquishing control Can code program without worrying about others Issues What can
More informationGetting started with the STSW-BCNKT01 software package for STEVAL-BCNKT01V1 based on STM32Cube
User manual Getting started with the STSW-BCNKT01 software package for STEVAL-BCNKT01V1 based on STM32Cube Introduction The STSW-BCNKT01 firmware package for BlueCoin Starter Kit provides sample projects
More informationProject Debugging with MDK-ARM
Project Debugging with MDK-ARM Notes: This document assumes MDK-ARM Version 5.xx (µvision5 ) is installed with the required ST-Link USB driver, device family pack (STM32F4xx for STM32F4-Discovery board;
More informationLABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI. Laboratory Lesson 2: - General Purpose I/O - SysTick
LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI Laboratory Lesson 2: - General Purpose I/O - SysTick Prof. Luca Benini Prof Davide Rossi
More informationLab 6 - Bouncing LEDs Commit ID Form:
UNIVERSITY OF CALIFORNIA, SANTA CRUZ BOARD OF STUDIES IN COMPUTER ENGINEERING CMPE-13/L: COMPUTER SYSTEMS AND C PROGRAMMING Lab 6 - Bouncing LEDs Commit ID Form: http://goo.gl/forms/eas2rzcsl7 Introduction
More informationProgramming Assignment 1: Pushbutton and Light
CSE 30 WINTER 2010 Programming Assignment 1: Pushbutton and Light Associated Cypress Board: CY3214 Associated Part Family: CY8C24894 PSoC Designer Version: 5.0 Revised: 10.5.2009 Summary When the push
More informationAN LPC1700 secondary USB bootloader. Document information. LPC1700, Secondary USB Bootloader, ISP, IAP
LPC1700 secondary USB bootloader Rev. 01 8 September 2009 Application note Document information Info Keywords Abstract Content LPC1700, Secondary USB Bootloader, ISP, IAP This application note describes
More informationCS 210 Fundamentals of Programming I Spring 2015 Programming Assignment 4
CS 210 Fundamentals of Programming I Spring 2015 Programming Assignment 4 20 points Out: February 18/19, 2015 Due: February 25/26, 2015 Reminder: This is a programming assignment, and work on this assignment
More information1 Overview. 2 Basic Program Structure. 2.1 Required and Optional Parts of Sketch
Living with the Lab Winter 2015 What s this void loop thing? Gerald Recktenwald v: February 7, 2015 gerry@me.pdx.edu 1 Overview This document aims to explain two kinds of loops: the loop function that
More informationECE 206, Fall 2001: Lab 3
ECE 206, : Lab 3 Data Movement Instructions Learning Objectives This lab will give you practice with a number of LC-2 programming constructs. In particular you will cover the following topics: - Load/store
More informationReal Time Embedded Systems. Lecture 10 January 31, 2012 Interrupts
Interrupts Real Time Embedded Systems www.atomicrhubarb.com/embedded Lecture 10 January 31, 2012 Interrupts Section Topic Where in the books Catsoulis chapter 1 (pg 10-12) Simon chapter4 Zilog UM197 (ZNEO
More informationSoftware Development Advanced
Software Development Advanced This material exempt per Department of Commerce license exception TSU Objectives After completing this module, you will be able to: Examine the IP driver s functionality and
More informationTDDE18 & 726G77. Functions
TDDE18 & 726G77 Functions Labs update No more one time password. We will note who have demonstrated during the lab and register this in webreg. Use the terminal to send in your lab! Dont use Visual studio
More informationEE251: Thursday September 20
EE251: Thursday September 20 Parallel I/O aka General Purpose I/O aka GPIO Common Devices: Switches, LEDs, Keypads Read Lab 4 carefully, and Chapter 14 in text Think about what you would like to review
More informationAGH University of Science and Technology Cracow Department of Electronics
AGH University of Science and Technology Cracow Department of Electronics Microcontroller Lab Tutorial 1 Microcontrollers programming in C Author: Paweł Russek http://www.fpga.agh.edu.pl/ml ver. 3.10.16
More informationAN4311 Application note
Application note Assessing STM32L1 Series current consumption Introduction The STMicroelectronics ARM Cortex -M3 based STM32L1 series uses ST s proprietary ultra-low-leakage process technology with an
More informationDeveloping and Debugging C Programs in MDK-ARM for the STM32L100RC Microcontroller
Developing and Debugging C Programs in MDK-ARM for the STM32L100RC Microcontroller ELCE 3040/3050 Lab Session 2 (write-up on course web page) Important References (on course web page): Tutorial: C programming
More informationGetting started with MotionAR activity recognition library in X-CUBE-MEMS1 expansion for STM32Cube
User manual Getting started with MotionAR activity recognition library in X-CUBE-MEMS1 expansion for STM32Cube Introduction The MotionAR is a middleware library part of X-CUBE-MEMS1 software and runs on
More informationUnlocking the Potential of Your Microcontroller
Unlocking the Potential of Your Microcontroller Ethan Wu Storming Robots, Branchburg NJ, USA Abstract. Many useful hardware features of advanced microcontrollers are often not utilized to their fullest
More informationReview of the syntax and use of Arduino functions, with special attention to the setup and loop functions.
Living with the Lab Fall 2011 What s this void loop thing? Gerald Recktenwald v: October 31, 2011 gerry@me.pdx.edu 1 Overview This document aims to explain two kinds of loops: the loop function that is
More information