PIC Code Execution II PIC B0 B1 B2 B3 B4 B5 B6 B7.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
E-COMMERCE WEBSITE Smartzap Co., Ltd.. Company Profile บริษัท สมาร์ทแซป จำกัด ก่อตั้งเมื่อปี 2543 (13 ปี ) ในช่วงยุค Internet เพิ่ง เริ่มต้น เป็นบริษัทที่ดำเนินงานทางด้าน.
Advertisements

John Rawls  John Rawls is the most famous American social contract theorist argued that “Justice is fairness” He Thought human natural have a appropriate.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
THE PARTS OF A FLOWERING PLANT AND THEIR FUNTION.
คำสั่ง DISPLAY รูปแบบที่ 1 DISPLAY identifier-1, identifier-2 … literal-1 literal-2 [ UPON mnemonic-name ]  ตัวอย่าง DISPLAY STUDENT-NAME. DISPLAY.
Set is a basic term in Mathematics. There is no precise definition for term “set”, But roughly speaking, a set is a collection of objects, Things or symbols,
INC 551 Artificial Intelligence Lecture 2. Review Environment Action Sense, Perceive Make Decision Agent World Model Deliberative Agent.
ขั้นตอนวิธีและเครื่องมือในการพัฒนาโปรแกรม (ต่อ)
จำนวน สถานะ NUMBER OF STATES. ประเด็นที่ สนใจ The number of distinct states the finite state machine needs in order to recognize a language is related.
Supreeya Wongtra-ngan,MD.,MHPEd. CLINICAL COMPETENCIES  Factual Knowledge  Technical Skill  Problem Solving Skill  Communication Skill  Manners &
Graphical User Interface charturong.ee.engr.tu.ac.th/CN208
Braille OCR Mobile Application
นายรังสฤษดิ์ตั้งคณา รหัส นายวสันต์ ชานุชิต รหัส อาจารย์ที่ปรึกษาโครงการ ผศ. ดร. ดารณี หอมดี อาจารย์ที่ปรึกษาโครงการร่วม ดร. วาธิส.
VARIABLES, EXPRESSION and STATEMENTS. Values and Data Types Value เป็นสิ่งพื้นฐาน มีลักษณะเป็น ตัวอักษร หรือ ตัวเลข อาทิ 2+2 หรือ “Hello world” Value.
อาจารย์ มธ. อธิบายการใช้ โมเดลของ
การแทนค่าข้อมูล และ Primary Storage (Memory)
ระบบการจัดเก็บในคลังสินค้า
: Chapter 1: Introduction 1 Montri Karnjanadecha ac.th/~montri Image Processing.
Color Standards A pixel color is represented as a point in 3-D space. Axis may be labeled as independent colors such as R, G, B or may use other independent.
ออโตมาตาจำกัด FINITE AUTOMATA
FINITE STATE AUTOMATA WITH OUTPUT
REGULAR EXPRESSION การบรรยายแบบสม่ำเสมอ
Helping you make better treatment decisions for your patients.
Chapter 19 Network Layer: Logical Addressing
Course Software Engineering SE Overview and Introduction.
Computer Graphics.
Problem with Subjunctive Verbs Some verbs and noun require a subjunctive. A subjunctive is a change in the usual form of the verb. It is often a verb word.
INC 551 Artificial Intelligence
INC341 Steady State Error Lecture 6.
Arithmetic circuits Binary addition Binary Subtraction
        วงจรดิจิตอลลอจิก 3(2-1-3)
Yv xv zv.
การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 7 การทดสอบโปรแกรม
ตัวอย่างFUZZY. ตัวอย่าง ฐานองคความรูฟซซีสามารถแสดงไดเปน Rule 1: If feature1 is high and feature2 is low and feature3 is medium, then class is 1.
การใช้ภาษาซี มาสั่งงานผ่านพอร์ตพริ้นเตอร์
8/3/2014The Realities of software Testing1 Software testing Realities What is the realities of software testing Why does the software testing not complete.
หน่วยประมวลผลกลาง CPU
Page: 1 โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้ ผศ. บุรินทร์ รุจจน พันธุ์.. ปรับปรุง 19 ตุลาคม 2555 Introduction to Batch.
Data Data are Raw material Data are values of qualitative or quantitative variables, belonging to a set of items. Sample 23, 36, 60 male, female like,
Menu and Interactive with Powerpoint ให้นำเรื่อง Input /Output Technology มา จัดทำ การนำเสนอ โดยใช้หลักการ Menu and Interactive with powerpoint มาประยุกต์
Algorithm Efficiency There are often many approaches (algorithms) to solve a problem. How do we choose between them? At the heart of computer program.
ค21201 คณิตศาสตร์เพิ่มเติม 1
Microprocessor and Interfacing Introduction to Microprocessors II
Introduction to Earned Value Analysis.
Thread Thread ส่วนของ process ที่ให้ CPU ประมวลผล.
การสร้าง WebPage ด้วย Java Script Wachirawut Thamviset.
Chapter 3 Simple Supervised learning
Chapter 1/1 Arrays. Introduction Data structures are classified as either linear or nonlinear Linear structures: elements form a sequence or a linear.
Microprocessor and Interfacing PIC Code Execution II
Memory Organization Microprocessor and Interfacing
Introduction to Microprocessors & Microcontrollers
Microprocessor and Interfacing PIC Code Execution II
Microprocessor and Interfacing PIC Flash Memory Segments 2K
Introduction to Microprocessors II
Cache and Pipelines. ม. ค. – พ. ค ,378 คัน * 11,676 ต่อเดือน, 389 ต่อวัน, 16 คันต่อชั่วโมง คันละ 3:45 นาที *source: manager.co.th (16/6/2008)
Lecture 7 Java Exceptions. Errors  Compile-time Errors  เกิดขึ้นระหว่าง compile ตรวจสอบได้ด้วย Compiler  เช่น ผิดหลักไวยากรณ์  Run-time Error  เกิดขึ้นระหว่างประมวลผล.
An Online Computer Assisted Instruction Development of Electronics Devices Subject for Learning Effectiveness Testing By Assoc.Prof. Suwanna Sombunsukho.
Bitcoin Mining. Hello, I’m Pawaris and I love Bitcoin.
หลักสูตรอบรมครู คอมพิวเตอร์ หลักสูตรอบรมครู คอมพิวเตอร์ หลักสูตรที่ ๑ ทักษะการโปรแกรม เบื้องต้น วันที่สาม.
อ. กิตติศักดิ์ โชติกิติพัฒน์. DataProcessInformation Text Voice Image Video etc Calculate Sum Sort Merge etc Text Voice Image Chart etc.
CPU Optimization Cache and Pipelines. ม. ค. – พ. ค ,378 คัน * 11,676 ต่อเดือน, 389 ต่อวัน, 16 คันต่อชั่วโมง คันละ 3:45 นาที *source: manager.co.th.
Memory Organization Microprocessor and Interfacing
 Mr.Nitirat Tanthavech.  HTML forms are used to pass data to a server.  A form can contain input elements like text fields, checkboxes, radio-buttons,
ภาษาแอสแซมบลี Pisit Nakjai.
ภาษาอังกฤษ ชั้นมัธยมศึกษาปึที่ 4 Grammar & Reading ครูรุจิรา ทับศรีนวล.
ADC & UART.
หน่วยที่ 3 องค์ประกอบของคอมพิวเตอร์
บทที่ 1 ความรู้เบื้องต้น เกี่ยวกับระบบสารสนเทศ
การเขียนโปรแกรมคอมพิวเตอร์
ที่มาและหน่วยงานกาชาดต่างๆ
ใบสำเนางานนำเสนอ:

PIC Code Execution II

PIC B0 B1 B2 B3 B4 B5 B6 B7

Memory Mapped I/O (MMIO) BSF06.0 BCF06.0 BSF = Bit Set File, BCF = Bit Clear File

ข้อดีข้อเสียของ Memory Mapped I/O ไม่ต้องออกแบบคำสั่งเฉพาะสำหรับ I/O MOVWF 06 MOVWF 21 I/O Operation Mem Operation

ข้อดีข้อเสียของ Memory Mapped I/O Memory Mapped I/O ใช้คำสั่งชุดเดียวในการเข้าถึง Memory และอุปกรณ์รอบข้าง ช่วยลดความซับซ้อนของ CPU ทำให้ราคาถูกลง และ ใช้ งานได้ง่าย Memory MappedPort-Mapped With some exceptions

ข้อดีข้อเสียของ Memory Mapped I/O แต่ก็ต้องเสียตำแหน่งใน Memory ไปบางส่วน เช่น PIC16F886 จะเสียพื้นที่ไป 128 Byte จากทั้งหมด 368 Bytes (~35%) เพื่อใช้ทำ Memory Mapped I/O 128 Bytes I/O Mapped 240 Bytes Available RAM

3.x GB?? 4 GB The 3 Gig RAM Problem 32 bit OS InstalledUsable ระบบ 32 บิตควรใช้งาน RAM ได้ 2^32 = 4GB พอดี แต่ ทำไมในความเป็นจริง กลับใช้ได้แค่ 3.x GB

The 3 Gig RAM Problem ~1 GB 3 GB Address Space Video Card BIOS PCI Bus Etc. RAM (4 GB) ที่อยู่ของหน่วยความจำส่วนบนถูกเอาไปใช้สำหรับ I/O

ข้อดีข้อเสียของ Memory Mapped I/O ถ้า Memory และ I/O ใช้ data bus เดียวกัน อาจทำให้ Memory Access ช้าลง เนื่องจากต้องรอคำสั่ง I/O ที่ทำงานช้ากว่า MOVWF 06 MOVWF 21 Slow I/O Operation Fast Mem Operation

Port Mapped I/O (PMIO) ใช้คำสั่งแยกกันระหว่าง Memory Operation กับ Peripheral Operation ปัจจุบัน CPU ที่ใช้ Port Mapped I/O มักใช้ Memory Mapped I/O ควบคู่กันไปด้วย

ข้อดี / เสียของ Port Mapped I/O การใช้คำสั่งเฉพาะทางทำให้ประสิทธิภาพ โดยรวมดีกว่า แต่ CPU จะมีความซับซ้อนที่สูงขึ้นจากคำสั่งที่ เพิ่มขึ้นมาเหล่านี้ การใช้งานยากขึ้นสำหรับผู้พัฒนา PIC 16FIntel x86 35 Instructions1,000+ Instructions* * See

Memory Mapped I/O Case Study PIC 16F, Tri-state I/O, Memory Organization

Look at the complete ASM code for output_high(PIN_B0) output_high(PIN_B0); 00ED: BSF EE: BCF EF: BCF F0: BSF 06.0 Q: Why do we need these commands? A: Before using a PIN on the PIC, we need to configure it’s direction

Each MCU PIN can be in 3 states (Tri-State) StateDescription HighThe pin sources 5V LowThe pin sinks to GND High ImpedanceThe pin is an input Output Mode Input Mode

Tri-state PIN configuration Telling the MCU which mode we want to use an IO pin 0 = Output 1 = Input

output_high(PIN_B0); 00EE: BCF > Clear bit 0 of TRISB 00F0: BSF > Set bit 0 of PORTB output_high(PIN_B0); 00ED: BSF EE: BCF EF: BCF F0: BSF 06.0 So, the code should be like this … But why is it like this?

The problem with “BCF 86.0” 0x86 = The space for the file register address is limited to 7 bits

Status Register (Address 03) See section “Register 5-1” in the handout for details of the Status Register Bit 6,7 ใช้เลือก Register Bank 00 = Bank 0 01 = Bank 1 10 = Bank 2 11 = Bank 3

Bank 0 Bank 1Bank 2 Bank 3

แบบฝึกหัด – ทำไฟวิ่งบน PIC Simulator IDE ; set PORTB as output bsf status,5 bcf status,6 movlw 0 movwf trisb ; disable Analog inputs bsf status,6 movwf 0x9 ; switch to FSR Bank 0 bcf status,5 bcf status,6 bsf portb,0 ; trun on LED on B0 กำหนดโปรแกรมส่วนต้นให้เพื่อ setup ระบบดังนี้

The RLF command Rotates the bits in a file register through the carry bit RLF Example: MOVLW1 MOVWF0x6 ; RAM value = RLF 0x6,F ; value is now

Status Register (Address 03) Carry Bit = จะรับบิตที่เกินออก มาทางซ้ายของ W register See section “Register 5-1” in the handout for details of the Status Register

PIC-C Trick: RAM access #byte b_port = 6 // mem pointer #bit B0 = b_port.0 b_port = 0xff; // drive port b B0 = 1; // set bit B0 to 1

Methods Write Machine Code Manually Write Assembly Code Use a High-Level Compiler

Writing Machine Code ENIAC

Benefits of High-Level Compilers Poor optimization Non-Optimal Hardware Utilization Drawbacks of High-Level Compilers Simple for the programmer Reduce development time Allows for the development of larger programs Easier to port to different hardware systems

Poor Optimazation while (1) output_b(i); Loop: BSF 03.5 CLRF 06 BCF 03.5 MOVF 21,W MOVWF 06 GOTO Loop No need to set TRIS bits every time

Poor Optimization Ex int i; i = 5; 000D: MOVLW E: BCF F: MOVWF do { i--; 0010: DECF 21,F } while (i>0); 0011: MOVF 21,F 0012: BTFSS : GOTO 010 DECF already sets the Z bit

Non-Optimal HW Utilization Blinking LED example Our code from exercise BSF06.0 Loop: RLF06 GoTo Loop Code generated by PIC-C Loop: BCF 03.5 MOVF 0x21,W MOVWF 06 RLF 0x21, F GOTO Loop