Chapter 2 Walking in Circles Programming Loops in C.

Slides:



Advertisements
Similar presentations
Chapter 3 Message in a Bottle Programming Loops in C.
Advertisements

Getting started with MPLAB Launch MPLAB Set Toolbar as in the next slide by clicking the leftmost icon Open a new Source file by choosing [FILE][NEW] Type.
Xilinx 6.3 Tutorial Integrated Software Environment (ISE) Set up basic environment Select Gates or Modules to Be simulated (Insert Program Code) Run Waveform.
Renesas Technology America Inc. 1 SKP8CMINI-15,17 Tutorial 2 Creating A New Project Using HEW4.
EMS1EP Lecture 4 Intro to Programming Dr. Robert Ross.
Introduction to HT-IDE3000 Micro-C development System Department.
Simple Microcontroller Programming with PIC16F88.
Chapter 4 NUMB3RS.
Lab7: Introduction to Arduino
C Examples 1.
EXTERNAL COMMUNICATIONS DESIGNING AN EXTERNAL 3 BYTE INTERFACE Mark Neil - Microprocessor Course 1 External Memory & I/O.
Slide 1CPU Emulator Tutorial This program is part of the software suite that accompanies the book The Digital Core, by Noam Nisan and Shimon Schocken 2003,
COMPUTER PROGRAMMING I Essential Standard 5.02 Understand Breakpoint, Watch Window, and Try And Catch to Find Errors.
Slides created by: Professor Ian G. Harris PIC Development Environment MPLAB IDE integrates all of the tools that we will use 1.Project Manager -Groups.
Microsoft ® Office Word 2007 Training Table of Contents II: Customize your TOC [Your company name] presents:
Programing Concept Ken Youssefi/Ping HsuIntroduction to Engineering – E10 1 ENGR 10 Introduction to Engineering (Part A)
Infineon Technologies Corp. June 99 1 HOT167-1 Version 2.0 F PWMmax = x 50ns = 78 kHz Pulse Width Modulation Unit (PWM) (20 MHz)  4 independent.
Railway Foundation Electronic, Electrical and Processor Engineering.
Getting the O in I/O to work on a typical microcontroller Activating a FLASH memory “output line” Part 1 Main part of Laboratory 1 Also needed for “voice.
Using PDG with e2studio: Example
ECE Department: University of Massachusetts, Amherst Lab 1: Introduction to NIOS II Hardware Development.
Railway Foundation Electronic, Electrical and Processor Engineering.
Engineering 1040: Mechanisms & Electric Circuits Fall 2011 Introduction to Embedded Systems.
Introduction Purpose Objectives Content Learning Time
ATMEL AVR 8 bit RISC MICROCONTROLLERS
Chapter 1 The First Flight Creating the first project and saying “Hello to the World”
Silicon Labs ToolStick Development Platform
Chapter 5 Interrupts.
Renesas Technology America Inc. 1 M16C/Tiny SKP Tutorial 2 Creating A New Project Using HEW4.
PowerFlex 755 DeviceLogix
EEE527 Embedded Systems Lecture 3: Chapter 1: Using MPLAB (X) + XC32 Ian McCrumRoom 5B18, Tel: voice mail on 6 th ring
System Clocks.
Introduction Purpose This course describes the process of installing the KPIT GNU toolchain on your PC. Objective Learn how easy it is to get information.
IT 211 Project Integration and Deployment Lab #11.
Chapter 2 A Loop in the Pattern Designing the Main Loop and Timing.
Teacher/Mentor Institute Using easyC Joel Kirkland July 30-31, 2015.
Prepared by Eng. Musa Alyaman1 Chapter Seven Chapter Seven PIC16F87x.
Renesas Technology America Inc. 1 SKP8CMINI Tutorial 2 Creating A New Project Using HEW.
EEE527 Embedded Systems Lecture 10B:Chapter 11 Analogue to Digital Convertors (ADCs) (version 2: 25/11/13, see after slide 20 Ian McCrumRoom 5B18, Tel:
ATMEL AVR 8 bit RISC MICROCONTROLLERS a general comparison.
Chapter 2 Introducing the PIC Mid-Range Family and the 16F84A The aims of this chapter are to introduce: The PIC mid-range family, in overview The overall.
ECS642U Embedded Systems Cyclic Execution and Polling William Marsh.
Programmable Logic Training Course HDL Editor
Timers and Interrupts Anurag Dwivedi. Let Us Revise.
EEE527 Embedded Systems Lecture 2: Chapter 2: C and Using more MPLAB (X) + XC32 Ian McCrumRoom 5B18, Tel: voice mail on 6 th ring
Renesas Technology America Inc. 1 SKP8CMINI Tutorial 2 Creating A New Project Using HEW.
Chapter 5 - Interrupts.
C Examples 1. Download Links dsPIC30F4011/4012 Data Sheet dsPIC30F4013/3014 dsPIC30F Family Reference Manual MikroC MikroC Manual MikroC Quick Reference.
Teaching Digital Logic courses with Altera Technology
GDT Tips and Tricks. GDT Tips and Tricks Doug Evans GDT 2004 International User Conference – Evolving the Legacy July  Tucson, Arizona GDT Tips.
Microcontrollers JULES CALELLA. Microcontrollers vs Microprocessors  Microprocessors – do not contain RAM, ROM, I/O  Microcontrollers – The whole package.
Active-HDL Server Farm Course 11. All materials updated on: September 30, 2004 Outline 1.Introduction 2.Advantages 3.Requirements 4.Installation 5.Architecture.
NAM S.B MDLAB. Electronic Engineering, Kangwon National University 1.
Embedded C- Language Lets Learn fundamentals !!. An Embedded system is combination of computer hardware and software, and perhaps additional mechanical.
CEng3361/18 CENG 336 INT. TO EMBEDDED SYSTEMS DEVELOPMENT Spring 2007 Recitation 01.
Troubleshooting Dashhawk Issues. Here's what you have to do to have the DashHawk run properly Go to the ACTUAL PROGRAM file (not the short cut)
One more PIC18F252 example and revision for exam B222L Branislav Vuksanovic, UoP, ECE.
After Construction Name: Per #:.
Lets Learn fundamentals !!
Making a 24hr Timer.
Microcontrollers, Basics Tips and Tricks with PIC MCUs
PROGRAMMABLE LOGIC CONTROLLERS SINGLE CHIP COMPUTER
Government Engg College Bhuj E. C. Engg. Department
ATMEL AVR 8 bit RISC MICROCONTROLLERS
Lab 1: Using NIOS II processor for code execution on FPGA
Microcontroller Applications
Refer to Chapter 5 in the reference book
PRU-ICSS Programming with CCS
Introducing the PIC Mid-Range Family and the 16F84A
Software Setup & Validation
Presentation transcript:

Chapter 2 Walking in Circles Programming Loops in C

Di Jasio - Programming 32-bit Microcontrollers in C The Plan The Main Loop WHILE loops Logic Expressions Of TRUE and FALSE in C DO loops The first peripheral: Timer1 Debugging with MPLAB SIM Animations The Logic Analyzer

Di Jasio - Programming 32-bit Microcontrollers in C Preparation The following tools will be used in this lesson: MPLAB IDE, Integrated Development Environment (v8.00 or later, free) MPLAB SIM, free software simulator (included in MPLAB installation) MPLAB C32, C compiler (free Student Edition) The following pieces of documentation will be used during this lesson: PIC32MX Datasheet –DS61143 (latest rev.) PIC32MX Family Reference Manual – DS61120 Section 12. I/O Ports Make sure they are available and/or installed and ready to use on your computer. You can download them from Microchip web site at: And

Di Jasio - Programming 32-bit Microcontrollers in C The Structure of an (embedded) C Program The main() function is where we place our application code At power up or after a reset, special initialization code ( crt0 ) is executed first When the main() function returns the _exit() function is called Both crt0 and _exit() contain default code inserted automatically by the compiler crt0 main() _exit()

Di Jasio - Programming 32-bit Microcontrollers in C WHILE Loops while ( x) { // your code here… }

Di Jasio - Programming 32-bit Microcontrollers in C Logic Expressions true and false are just integers in C false is zero true is everything else! Logic operators produce true/false results: || the logic OR operator, && the logic AND operator, !the logic NOT operator ==the equal-to operator !=the NOT-equal to operator. >the greater-than operator. >=the greater-or-equal to operator. <the less-than operator. <=the less-or-equal to operator.

Di Jasio - Programming 32-bit Microcontrollers in C Strange Loops while ( 0) { // your code here… } while ( 1) { // your code here… }

Di Jasio - Programming 32-bit Microcontrollers in C A First Program: Loops.c #include main() { // initialization DDPCONbits.JTAGEN = 0; // disable the JTAG port TRISA = 0xff00; // PORTA pin 0..7 as output // application main loop while( 1) { PORTA = 0xff; // turn pin 0-7 on PORTA = 0; // turn all pin off }

Di Jasio - Programming 32-bit Microcontrollers in C MPLAB SIM: Animation Use the Project Build checklist to compile and link the loops.c program. Also use the MPLAB SIM simulator Setup checklist to prepare the software simulator. Use the Animate mode (Debugger>Animate). In this mode, the simulator executes one C program line at a time, pausing shortly after each one to give us the time to observe the immediate results. Control the simulation speed with the Debug>Settings dialog box, selecting the Animation/Real Time Updates tab, and modifying the Animation Step Time parameter

Di Jasio - Programming 32-bit Microcontrollers in C Timer1

Timer1 A 16-bit timer Compatible with 8-bit PIC microcontrollers and 16-bit microcontrollers Operates off the internal (peripheral) clock or an external input signal Has a dedicated low power (secondary) oscillator that can also be used to provide a clock signal to the entire system Can be gated via a separate input pin A 16-bit register allows for cyclical operation

Di Jasio - Programming 32-bit Microcontrollers in C Using Timer1 for simple Delays while( TMR1 < DELAY) { // wait } Tdelay = (Fpb) * Prescaler * DELAY Fpb peripheral bus frequency DELAY a constant defined by the user

Di Jasio - Programming 32-bit Microcontrollers in C Loops.c /* ** Loops */ #include #define DELAY // 256ms main() { // 0. initialization DDPCONbits.JTAGEN = 0; // disable JTAGport, free up PORTA TRISA = 0xff00; // all PORTA as output T1CON = 0x8030; // TMR1 on, prescale 1:256 PB=36MHz PR1 = 0xFFFF; // set period register to max // 1. main loop while( 1) { //1.1 turn all LED ON PORTA = 0xff; TMR1 = 0; while ( TMR1 < DELAY) { // just wait here } // 1.2 turn all LED OFF PORTA = 0; TMR1 = 0; while ( TMR1 < DELAY) { // just wait here } } // main loop } // main

Di Jasio - Programming 32-bit Microcontrollers in C MPLAB SIM: Logic Analyzer Select the Debug>Settings dialog box and then choose the Osc/Trace tab. In the Tracing options section, check the Trace All box. Now you can open the Analyzer window, from the View- >Simulator Logic Analyzer menu.

Di Jasio - Programming 32-bit Microcontrollers in C Adding Channels Click on the Channels button, to bring up the channel selection dialog box select RA0 and click Add => Click on OK

Di Jasio - Programming 32-bit Microcontrollers in C

Summary In this lesson we learned: The function of the Main Loop WHILE and DO loops Logic Expressions in C Timer1 How to use the MPLAB SIM simulator: Animate mode Logic Analyzer window

Advanced Material

Di Jasio - Programming 32-bit Microcontrollers in C Notes for the Assembly Experts true | (binary) OR true gives true true || (logical) OR true gives true

Di Jasio - Programming 32-bit Microcontrollers in C Notes for the 8-bit PIC MCU Experts Timer0 is gone All timers are now 16-bit wide Each timer has a 16-bit period registers A new 32-bit mode timer-pairing mechanism is available for Timer2/3 and Timer4/5 A new external clock gating feature has been added on Timer1

Di Jasio - Programming 32-bit Microcontrollers in C More Notes Notes for 16-bit PIC Experts The peripheral bus and the system bus are now separate to allow better power control when executing code at the highest clock speeds Notes for C experts While several Real Time Operating Systems (RTOSs) are available for the PIC32, a large number of applications wont need and wont use one. By default, the C32 compiler assumes there is no operating system to return control to Notes for MIPS experts The core (32-bit) timer is available as an additional resource to the set of five peripheral timers compatible with the 16-bit PIC microcontrollers

Di Jasio - Programming 32-bit Microcontrollers in C Tips and Tricks When writing an application that is Always ON, consider the impossible: Refresh the most important control registers of the essential peripherals used by the application Group the sequence of initialization instructions in one or more functions. Call the functions once at power up, before entering the main loop, Also make sure that inside the main loop the initialization functions are called when idling and no other critical task is pending so that every control register is re-initialized periodically

Di Jasio - Programming 32-bit Microcontrollers in C Peripheral Libraries Using the peripheral libraries #include We can replace: TMR1 = 0; T1CON = 0x8030; PR1 = 0xFFFF; With the following (more portable) code: WriteTimer1( 0); OpenTimer1( T1_ON | T1_PS_1_256, 0xFFFF);

Di Jasio - Programming 32-bit Microcontrollers in C Suggested Excercises Output a counter on PortA pins instead of the alternating on and off patterns Use PortD if you have a PIC32 Starter Kit. Use a rotating pattern instead of alternating on and off Re-write the loops project using exclusively peripheral library functions to Control PortA pins Configure and read the timer Disable the JTAG port if necessary

Di Jasio - Programming 32-bit Microcontrollers in C Recommended Readings Ullman, L. & Liyanage, M. (2005) C Programming Peachpit Press, Berkeley, CA. This is a fast reading and modern book, with a simple step by step introduction to the C programming language

Di Jasio - Programming 32-bit Microcontrollers in C Online Resources A wide perspective on programming languages and the problems related to coding and taming loops. Your code gets out of control when your loops start knotting…