Basic Interrupts and I/O
|
|
|
- Gwen Matthews
- 9 years ago
- Views:
Transcription
1 Basic Interrupts and I/O an introduction to interrupts and I/O with the AVR Eivind, AVRfreaksnet, By Eivind Sivertsen, AVRFreaks Oct2002 This article is a small project for you people who are just getting into the AVR, and perhaps even microcontrollers in general Lets' get physical The natural place to start is the STK500 It is a very nice development board for the AVR, reasonably priced (~USD79) and provides all the environment we need to test some pretty real applications on the AVR out in the wild We're gonna start out with some simple counting controlled by external interrupts and exposed on the nice LEDs of the STK500 Then we'll add a speaker (Oh yeah!), and before we know it we'll have a miniature amusement park on our desks with lights AND noise and buttons to push! Perhaps fire as well, if something REALLY goes wrong This is what we'll use: 1 AVRstudio 3 or 4 2 STK500 development kit, all set up with your computer and ready to go 3 An AT90s8515 microcontroller (usually comes with the STK500) 4 Some small speaker that works, including wires soldered in place The setup is based on a Windows configuration, but it is very possible use some other software as well, since we won't concentrate much on the use of AVRstudio besides assembling the project If you are a Linux user, you could use: * avr-gcc (ie avrasm) for the assembly * uisp for programming The program will be written in assembly, because: * assembly is very "machine-near" and provides a very educative approach to what goes on inside the processor during our program * high-level languages and different compilers all have different notations and routines for doing the same thing Learning a compiler and the respective C-style (eg) is a story of itself The code for this project is something we found among leftovers from O'Guru Sean Ellis which we brutally and without due respect ripped apart Shame on us Basic interrupts An interrupt is a flow control mechanism that is implemented on most controllers, among them the AVR In an MCU application interacting with the outside world, many things are happening at the same time, ie not in a synchronized manner, that are to be handled by the microcontroller Examples: a switch pressed by the user, a data read on the UART (serial port), a sample taken by the ADC, or a timer calling to say that "time is up!" All these events neeeds to be handled by the MCU Instead of polling each instance round-robin style to ask whether they are in need of a service, we can have them call out themselves when they need attention This is called "interrupts", since the peripheral device (eg a switch pressed) interrupts the main program execution The processor then takes time out of the normal program execution to examine the source of the interrupt and take the necessary action Afterwards, normal program execution is resumed An interrupt service in other words is just like a subroutine except that it is not anticipated by the processor to occur at a particular time, since there are no explicitly placed calls to it in the program What's in a name? When reading this article you will from time to time get the feeling that you are confronting a term possibly denoting an actual physical entity or an entity in some sense relevant to the current activity namely playing around or building serious applications with the AVR: INT0, INT1, GIMSK, PORTB, PB7 etc You are sure to come across such names in any assembly code, Atmel appnote, AVRfreaks Design Note or any posting in the AVRforum One might think these are just common names used by individuals accustomed to the jargon, but we will try to use them consciously - in the sense that these names actually denote actual memory locations in the AVR you will be programming The mapping of these name to actual memory locations is in the part's def file (*def cacros vn unknown term: 8515definc (~6kB) When including this file in the assembly program file, all I/O register names and I/O register bit names appearing in the data book will be known to the assembler and can be used in the program Note that some high-level language compilers may use proprietary terms other than these But they will have files similar to this def file, defining the memory space of the AVRs As previously stated this is another story Another document that will prove very useful to anyone working with the AVR, is this document:manual you previously downloaded! 8515 datasheet (~2MB) Example snippet only a few lines are shown ***** I/O Register Definitions equ SREG =$3f equ SPH =$3e equ SPL =$3d equ GIMSK =$3b The datasheet The datasheet is the ultimate reference for any AVR microcontroller It even includes an instruction set summary look up every instruction you don't know when you come across it! page 11
2 The vector table is reserved for storing interrupt vectors ie locations to jump to when this or that interrupt is calling This means that each interrupt has a reserved memory location, and when a particular interrupt comes in, the MCU looks in this location to find the address where code that handles this interrupt resides In this article, we will be using the 8515 Download this pdf and keep it close for reference You may even want to print it, but think twice It is long Now you know where to look when anything unknown pops up Let's move on > Structure of an interrupt-driven program on the AVR Take a deep breath This is the heaviest part We are going to write an "interrupt-driven" program where the main loop simply does nothing but wait for interrupts to occur What interrupts? External interrupts INT0 and INT1 on pins PD2 and PD3 The interrupts are handled in turn, and a return to the main program is performed at the end of each interrupt service (that's what I call it "service") This is a rather wide topic with many pitfalls But we need somewhere to start and will mainly discuss aspects concerning elements of our little example application The main important thing that constitutes such elements in a program is: 1 Setting the interrupt vector jump locations: org 2 Setting the correct interrupt mask to enable desired interrupts: GIMSK 3 Make necessary settings in control registers: MCUCR 4 Globally enable all interrupts: SREG Setting the interrupt vector jump locations: org The lowest part of the AVR program memory, starting at address $0000, is sometimes referred to as the "Program memory vector table", and the actual program should start beyond this space The vector table is reserved for storing interrupt vectors ie locations to jump to when this or that interrupt is calling This means that each interrupt has a reserved memory location, and when a particular interrupt comes in, the MCU looks in this location to find the address where code that handles this interrupt resides 8515 Vector table Example only the few first vectors are shown Program memory address Vector Comment $0000 Reset Start address of Reset handler is stored here $0001 INT0 Start address of code to handle external INT0 is stored here $0002 INT1 Start address of code to handle external INT1 is stored here etc The number of interrupts available varies from processor to processor The org directive In assembly code, the org directive is used to set vector jump locations This assembler directive (or "command", if you like) tells the assembler to set the location counter to an absolute value It is not part of the AVR instruction set, it is just a command that the assembler needs to make sure the program code is mapped correctly when making a binary for the AVR Example: Sample Code Interrupt service vectors Handles reset and external interrupt vectors INT0 and INT1 org $0000 rjmp Reset org INT0addr rjmp IntV0 org INT1addr rjmp IntV1 Reset vector (when the MCU is reset) INT0 vector (ext interrupt from pin PD2) INT1 vector (ext interrupt from pin PD3) - Reset vector - (THIS LINE IS A COMMENT) Reset: ldi TEMP,low(RAMEND) Set initial stack ptr location at ram end out SPL,TEMP ldi TEMP, high(ramend) out SPH, TEMP Note that labels are used instead of absolute numbers to designate addresses in assembly code - The assembler stitches it all together in the end All we need to do is tell the assembler where to jump when eg the reset vector is calling, by using the name of the code block meant for handling resets A label denotes a block of code, or function if you like which is not terminated with a "}", an endfunc or anything like that The only thing that ends a code block definition, is it being released by another block name, followed by a colon (":") This also implies, unlike with functions in eg C, that all blocks are run by the processor consecutively, unless the flow is broken up by un/conditional jumps, returns, interrupts etc In assembly, the whole file is the main( ) function, and the flow control is more like Basic Please also note the first lines of the reset handler This is where the stack is set up The stack is used to hold return addresses in the main program code when a sub- or interrupt routine is run ie when a "digression" from the main program is made For any interrupt service or subroutine to return to the main program properly the stack must be placed outside their vector space The SP is namely initialized with the value $0000, which is the same location as the reset vector This goes for any program, especially such as this, where we are involving several interrupt vectors besides the reset vector For AVRs with more than 256 bytes SRAM (ie none of the Tinys, nor 2343 and 4433), the Stack Pointer register is two bytes wide and divided into SPL and SPH (low and high bytes) Setting the interrupt mask: GIMSK The GIMSK register is used to enable and disable individual external interrupts GIMSK General Interrupt Mask register INT1 INT Read/write R/W R/W R R R R R R Note that only the INT0 and INT1 bits are writable The other bits are reserved and always read as zero page 12
3 We are going to use the external interrupts INT0 and INT1 for the switches on the STK500 These interrupts are enabled by setting INT0 and INT1 in GIMSK ie bits 6 and 7 MCUCR MCU general control register ISRE SRW SE SM ISC11 ISC10 ISC01 ISC00 The bits in MCUCR allow general processor control Consult the datasheet for an in-depth description of the registers and the individual bits We will be using bits 0,1,2 and 3 in this register to control the interrupt from INT0 and INT1 These bits control how to sense the external interrupts either by level, falling edge on pin, or rising edge of pin: ISCx1 ISCx0 Description 0 0 Low level on INTx pin generates interrupt 0 1 Reserved 1 0 Falling edge on INTx pin generates interrupt 1 1 Rising edge on INTx pin generates interrupt We will use the rising edge of the switches on the STK500 to trig the interrupt so the 8515 must be programmed to trig external interrupts on rising edges of each pin PD2 and PD3 Hence all the ISCx bits must, for our program, be set to "1" Just remember to couple the switches with the appropriate inputs on the 8515 namely PORTD input pins PD2 and PD3 Use any two switches on the STK500 you like on the picture to the right I used switches SW0 and SW1 Also connect the LEDs to PORTB with a 10-pin ISP connector cable When running this code on the STK500, at first all LEDs will be off Press the switches a few times, and you will realize one of them counts something up, the other one down, and the results are reflected on the LEDs Let's have an overview of the program Here's an example snapshot, after initialization: This is what our code will do Nothing more Besides initialization, the short routine for handling the other switch (generating INT1) and a few directives for the assembler, that's it all You can see on the diagram to the right how pushing the switch will close the lower branch and pull the pin low Hence releasing the switch causes a rising edge when the branch is re-opened and the pin is pulled high Globally enable all interrupts: SREG In addition to setting up the interrupts individually, the SREG (Status Register) bit 7 must also be set to globally enable all (ie any) interrupts SREG S tatus register I T H S V N Z C The bits in SREG indicate the current state of the processor All these bits are cleared on reset and can be read or written by a program Bit7 (I) is the one we are currently interested in as setting this bit enables all interrupts Vice versa, resetting it disables all interrupts In AVR code, we have an instruction of its own to set this flag sei: lots and lots of initialisation, and then sei this instruction enables all interrupts and off we go! 1 A switch is pressed -> ext INT0 generated 2 The vector for INT0 is found 3 Code at the according location is run, and jumps to a common subroutine 4 The common subroutine returns to the main loop by reti instruction This is what our code will do Nothing more Besides initialization, the short routine for handling the other switch (generating INT1) and a few directives for the assembler, that's it all 8515definc (~6kB) Just to make sure I'm still not kidding you have a look in the 8515definc file and search for "INT0addr" and "INT1addr" Lo and behold they are real addresses Reset is placed at $0000 Real code part 1 OK, let's start with the real code Assuming you're already able to assemble your own code and even program the part in the STK500 - we'll just dig through the code OK, here is the entire program code, with some excessive comments removed (these are still left in the available file) Look up any unknown instruction for full understanding while you read through it You can click each code block label to jump to their respective comments next page page 13
4 OK, here is the entire program code, with some excessive comments removed (these are still left in the available file) Look up any unknown instruction for full understanding while you read through it You can click each code block label to jump to their respective comments INTs_1asm Source for first part of program (~3kB) Name: int0asm Title: Simple AVR Interrupt Verification Program include "8515definc" Interrupt service vectors org $0000 rjmp Reset Reset vector org INT0addr rjmp IntV0 INT0 vector (ext interrupt from pin D2) org INT1addr rjmp IntV1 INT1 vector (ext interrupt from pin D3) Register defines for main loop def TIME=r16 def TEMP=r17 def BEEP=r Reset vector - just sets up interrupts and service routines and then loops forever Reset: ldi TEMP,low(RAMEND) Set stackptr to ram end out SPL,TEMP ldi TEMP, high(ramend) out SPH, TEMP ser TEMP Set TEMP to $FF to out DDRB,TEMP set data direction to "out" out PORTB,TEMP all lights off! out PORTD,TEMP all high for pullup on inputs ldi TEMP,(1<<DDD6) bit D6 only configured as output, out DDRD,TEMP output for piezo buzzer on pin D6 set up int0 and int1 ldi TEMP,(1<<INT0)+(1<<INT1) int masks 0 and 1 set out GIMSK,TEMP ldi TEMP,$0f interrupt t0 and t1 on rising edge only out MCUCR,TEMP ldi TIME,$00 Start from 0 sei enable interrupts and off we go! loop: rjmp loop Infinite loop - never terminates Int0 vector - decrease count IntV0: dec TIME rjmp Int01 jump to common code to display new count Int1 vector - increase count IntV1: inc TIME drop to common code to display new count Int01: mov r0,time display on LEDs com r0 out PORTB,r0 reti OK, lets go through the code step by step, though at a pace It may be easier if you have the source printed out next to you while reading the following comments: The first lines includes the define file for the 8515 thus making all register and I/O names known to the assembler What happens next is the Interrupt vector table is defined At $0000, the reset vector is set up This is where the 8515 wakes up in the morning - everything is supposed to start from here Also, the INT0 and INT1 vectors are set up, and their handling routines named IntV0 and IntV1, respectively Look up their labels down the code, and you can see where they are declared page 14
5 Py-haa! The reset label contains all initialization code this block is run at start-up The first 4 lines sets up the stack pointer, as mentioned earlier Following this, registers r16, r17 and r18 have labels put onto them This is a way to make variables in assembly - only we also get to decide where they are placed in memory Where? In registers r16, r17 and r18 hence they are all one byte wide The reset label Py-haa! The reset label contains all initialization code this block is run at startup The first 4 lines sets up the stack pointer, as mentioned earlier Note how the ldi(load immediate) instruction is used to hold any value temporarily before writing to the actual location by out low() and high() are macros returning the immediate values of their arguments, which are memory locations defined in the def file The next six lines sets the Data Direction Registers of ports PORTB (used for LEDs) and PORTD (switches) Please check the datasheet under "I/O Ports" for functional descriptions of these registers Now, notice this line: ldi This line of code simply (!) means: TEMP,(1<<DDD6) "Load TEMP register with a byte value of 1 shifted DDD6 places leftwards" Ok Then what is DDD6? From the def file, we find that this value is 6, and it is meant to point to the 6th bit of the PORTD Data Direction Register The value loaded into TEMP and then into DDRB, becomes in binary Hence, the bit in this position in the DDRB register is set So what happens? That pin (pin PD6) is to be used for a special twist in the next stage of the program, so that particular pin is set as an output the others will be inputs For now, just notice the notation You can probably imagine what happens if you combine such notation in an addition? Well, this is what happens next, when the GIMSK register is loaded, and then the MCUCR Please refer to the previous section or the datasheet for a description of these registers and why they are set this way Only thing remaining in the reset block now, is to call our friend the sei instruction for enabling the interrupts we have just set up The loop label The loop label simply contains nothing but a call to itself It's an equivalent of writing while(1) in C After reset is run, the program pointer falls through to the loop block and it will run forever only interrupted by - interrupts The IntV0 label This label comtains the handling code for the INT0 interrupt Whenever that interrupt calls, this code will be run It will simply decrement the TIME register Then it just jumps to a common block called: The Int01 label This block consists of common code that displays the value of TIME (r16) on the LEDs connected to PORTB Note that the value is inverted by 1's complement (com instruction) before written to PORTB, since a low value means no light and vice versa This block then performs a return to wherever it was called from through the reti instruction - which was from the loop label The IntV1 label You've probably figured that this code runs every time the switch connected to pin PD3 is pressed (ie released, due to our MCUCR settings) It increases TIME Then it just falls through to the common routine Int01, since it contains no jump or return instruction We could just as well have put in an rjmp Int01 here as well But we don't need it Though it may be good common practice to be consequent with this :-) Now, take a last look at this figure to recollect, before moving The timer overflow interrupt After stating our success with the previous experiment, we are going to ameliorate this little design a little more We are going to add another interrupt into the application a Timer Overflow interrupt for the timer/counter 0 of the 8515 Also, we're going to supply a small speaker to make some noise If you think the hardware requirements for this project are getting too demanding now, you don't have to hook up the speaker It is for illustrative purposes only, and your code will work perfectly well without it Every which way you will see how to set up the timer overflow interrupt and write handling code for it Timer overflow 0 The 8515 has two timer/counters one 8 bits wide and one 16 bits wide This means that they are capable of counting from any value you set, until they reach their limit which is determined by the number of bits available (256 or 65535, respectively) Then they will issue an interrupt, if you have set it up to do so Upon overflow the Timer/Counter just keeps counting "around" the range so if you have set the timer to start from some special value and want it to start from there again you will have to reset it to that value What we need to do in the code, is to add three little blocks of code more These are (could you guess them?): 1 Another interrupt vector, for the TimerOverflow 0 interrupt: OVF0addr 2 Initialization code for timer/counter 0: TIMSK, TCCR0,TCNT0 3 The interrupt handling subroutine OVF0addr This is the name set in the 8515definc file for the location where this interrupt vector should reside (check it, I may be pulling your leg) We add these two lines of code to the vector block: -- new interrupt vector - org OVF0addr rjmp TimerV0 T/C0 overflow vector page 15
6 and again the only thing you really need to know for this little tutorial is the position of one special little bit: this one is called "Timer/Counter0 Overflow Interrupt enable", abbreviated "TOIE0" and found in bit postition 1 of this register You are very able to read this now, and realize that it is just like the previous org's in this program Let's move on! TIMSK, TCCR0,TCNT0 Together, these 3 registers are all we need consider to have timing interrupts in an application on the AVR TCCR0 controls the operation of Timer/counter 0 The count is incremented for every clock signal at the input of the timer But the clock input can be selected, and prescaled by N We'll just consider the 3 lowest bits of this register: TCCR0 Timer/Counter0 register CS02 CS01 CS00 Read/write R R R R R R/W R/W R/W Note that bits 7-3 are reserved, and always read as zero This table shows the different settings of these 3 control bits: CS02 CS01 CS00 Description Stop the timer/counter CK CK/ CK/ CK/ CK/ Ext pin T0, falling edge Ext pin T0, rising edge TIMSK the Timer/Counter Interrupt Mask register is simply a "mask" register for enabling/disabling interrupts just like you have already seen with the GIMSK register: TIMSK Timer/Counter Interrupt Mask register TOIE1 OCIE1A OCIE1B - TICIE1 - TOIE0 - Read/write R/W R/W R/W R R/W R R/W R Note that bits 4,2 and 0 are reserved, and always read as zero and again the only thing you really need to know for this little tutorial is the position of one special little bit: this one is called "Timer/Counter0 Overflow Interrupt enable", abbreviated "TOIE0" and found in bit postition 1 of this register To enable our Timer interrupt set this bit (to "1") TCNT0 is the actual "Timer/Counter" register This is where the timing and counting is done, in accordance with the settings in TCCR0 This is simply a register for storing a counter value there are no special bits in it It is entirely readable/writable so you can load it with any desired starting value for your counting if you like Note that it does not reset itself automatically, even if an interrupt is issued This is already becoming old news to you now, since it's just more or less another instance of registers controlling similar functions that you have already heard about regarding the external interrupts So let's go right to the code> Real code part 2 For illustrating the Timer0 Overflow interrupt we connect a small speaker to an output pin of the 8515 Each Timer0 overflow interrupt will toggle the pin The result is that the speaker will buzz with a base frequency proportional to the frequency with which the pin is toggled Ie the base frequency will be: CLK/2*Prescale*(256-TIME) where TIME is the current value in the TIME register (r16) Also, the two switches affecting the value in TIME will make the buzz frequency waver up or down The picture shows how to connect the speaker We have chosen pin PD6 for no particular reason Huh? Why is that the formula for the base frequency?? The Timer/counter counts up from some value every clock cycle until it overflows Then we reset it, to repeat the drill Let's say the timer can only count to 1 before overflow Flipping the pin every time, will give us one cycle of a squarewave like waveform every 2 flips, right? (up a while, then down a while, repeat) Hence, the base frequency would be: CLK/2 Now the Timer/Counter register is 8 bits wide, and can count from any value it is set (TIME) to 255 The formula becomes: CLK/2*(256-TIME) Besides we have a prescaler which, when set to N, makes the Timer count just every Nth cycle CLK/2*N*(256-TIME) page 16
7 These are the three snippets of code to insert Please consult the complete source code (INTs_2asm, available below) to where the snippets are inserted: Flipping the beep pin (PD6) is a little curious, however: This is done by inverting every bit in BEEP (r18) with the com instruction, and then OR'ing it with this value 0xbf = b (note the 6th position is '0') INTs_2asm (~3kB) Source snippets for second part of program CODE SNIPPET #1 - OVF0addr vector inserted below the existing vector defs org OVF0addr rjmp TimerV0 T/C0 overflow vector CODE SNIPPET #2 - Initializing TIMSK,TCCR0,TCNT inserted in the Reset: label, right before the 'sei' call ldi TIME,$80 Start from 128 NB! out TCNT0,TIME set Timer/counter also ldi TEMP,(1<<TOIE0) timer overflow interrupt enable 0 out TIMSK,TEMP Now, these were the very basic basics of interrupts and I/O Feel free to experiment with what you have learnt in this article use other prescaler settings, try other flanks of external interrupt triggering, write programs that use switches to make flow control decisions, whatever Good luck! ldi TEMP,$02 clock prescaler = clk/8 out TCCR0,TEMP CODE SNIPPET #3 - handling the Timer overflow int -- new subroutine label, inserted at the end of the file TimerV0: out TCNT0,TIME reset time CODE SNIPPET #1 - OVF0addr vector This part simply declares the Timer Overflow vector address CODE SNIPPET #2 - Initializing TIMSK,TCCR0,TCNT First, we set the TIME register to a higher value (0x80 = 128 decimal) for starters, and load it into the Timer/Counter register It's just a more fitting start value if you run the 8515 on a low CLK freq Then the relevant interrupt enable bit is set in the TIMSK register, and the prescaling bits in the Timer Control register are set to Prescale=8 This way, if the MHz the speaker will buzz with a base frequency equal to 123E6/2*8*127 = 6053 Hz CODE SNIPPET #3 - handling the Timer overflow int -- The important issues in handling this interrupt is: Resetting the Timer/Counter - it won't do that itself! Flipping the beep pin Returning to the program com BEEP ori BEEP,$BF bit 6 only out PORTD,BEEP reti important! Follow the sequence below: BEEP after com: 'OR' with: Result: after com: 'OR' with: Result: etc As you may see whichever value is in BEEP, the 6th bit of it will flip every time So, the pin will toggle up and down, and the speaker beeps this little song: " " Haha Now, these were the very basic basics of interrupts and I/O Feel free to experiment with what you have learnt in this article use other prescaler settings, try other flanks of external interrupt triggering, write programs that use switches to make flow control decisions, whatever Resetting Timer/Counter is obviously done by loading the value of TIME (r16) into TCNT0, and returning from the interrupt routine is done by issuing a reti instruction Good luck! page 17
AVR Butterfly Training. Atmel Norway, AVR Applications Group
AVR Butterfly Training Atmel Norway, AVR Applications Group 1 Table of Contents INTRODUCTION...3 GETTING STARTED...4 REQUIRED SOFTWARE AND HARDWARE...4 SETTING UP THE HARDWARE...4 SETTING UP THE SOFTWARE...5
APPLICATION NOTE. Atmel AVR134: Real Time Clock (RTC) Using the Asynchronous Timer. Atmel AVR 8-bit Microcontroller. Introduction.
APPLICATION NOTE Atmel AVR134: Real Time Clock (RTC) Using the Asynchronous Timer Introduction Atmel AVR 8-bit Microcontroller This application note describes how to implement a real time counter (RTC)
How to use AVR Studio for Assembler Programming
How to use AVR Studio for Assembler Programming Creating your first assembler AVR project Run the AVRStudio program by selecting Start\Programs\Atmel AVR Tools\AVR Studio. You should see a screen like
8-bit Microcontroller. Application Note. AVR134: Real-Time Clock (RTC) using the Asynchronous Timer. Features. Theory of Operation.
AVR134: Real-Time Clock (RTC) using the Asynchronous Timer Features Real-Time Clock with Very Low Power Consumption (4µA @ 3.3V) Very Low Cost Solution Adjustable Prescaler to Adjust Precision Counts Time,
Interrupts and the Timer Overflow Interrupts Huang Sections 6.1-6.4. What Happens When You Reset the HCS12?
Interrupts and the Timer Overflow Interrupts Huang Sections 6.1-6.4 o Using the Timer Overflow Flag to interrupt a delay o Introduction to Interrupts o How to generate an interrupt when the timer overflows
AVR Timer/Counter. Prof Prabhat Ranjan DA-IICT, Gandhinagar
AVR Timer/Counter Prof Prabhat Ranjan DA-IICT, Gandhinagar 8-bit Timer/Counter0 with PWM Single Compare Unit Counter Clear Timer on Compare Match (Auto Reload) Glitch-free, Phase Correct Pulse Width Modulator
Voltage boost and buck circuits using Atmel AVR Tiny13V for driving a white LED.
Voltage boost and buck circuits using Atmel AVR Tiny13V for driving a white LED. By Steven Weber, KD1JV 1/26/09 The PWM feature of the Tiny13 processor can be used to make a simple voltage boost or buck
2.0 Command and Data Handling Subsystem
2.0 Command and Data Handling Subsystem The Command and Data Handling Subsystem is the brain of the whole autonomous CubeSat. The C&DH system consists of an Onboard Computer, OBC, which controls the operation
PIC Programming in Assembly. (http://www.mstracey.btinternet.co.uk/index.htm)
PIC Programming in Assembly (http://www.mstracey.btinternet.co.uk/index.htm) Tutorial 1 Good Programming Techniques. Before we get to the nitty gritty of programming the PIC, I think now is a good time
Building A RISC Microcontroller in an FPGA
Building A RISC Microcontroller in an FPGA Name : Yap Zi He Course : 4 SEL Supervisor : PM Muhammad Mun im Ahmad Zabidi Introduction Reduce Instruction Set Computer (RISC) is a new trend on computer design.
8-bit Microcontroller. Application Note. AVR410: RC5 IR Remote Control Receiver
AVR410: RC5 IR Remote Control Receiver Features Low-cost Compact Design, Only One External Component Requires Only One Controller Pin, Any AVR Device Can be Used Size-efficient Code Introduction Most audio
AVR151: Setup and Use of the SPI. Introduction. Features. Atmel AVR 8-bit Microcontroller APPLICATION NOTE
Atmel AVR 8-bit Microcontroller AVR151: Setup and Use of the SPI APPLICATION NOTE Introduction This application note describes how to set up and use the on-chip Serial Peripheral Interface (SPI) of the
Step Motor Controller. Application Note. AVR360: Step Motor Controller. Theory of Operation. Features. Introduction
AVR360: Step Motor Controller Features High-Speed Step Motor Controller Interrupt Driven Compact Code (Only 10 Bytes Interrupt Routine) Very High Speed Low Computing Requirement Supports all AVR Devices
AVR134: Real Time Clock (RTC) using the Asynchronous Timer. 8-bit Microcontrollers. Application Note. Features. 1 Introduction
AVR134: Real Time Clock (RTC) using the Asynchronous Timer Features Real Time Clock with Very Low Power Consumption (4 μa @ 3.3V) Very Low Cost Solution Adjustable Prescaler to Adjust Precision Counts
150127-Microprocessor & Assembly Language
Chapter 3 Z80 Microprocessor Architecture The Z 80 is one of the most talented 8 bit microprocessors, and many microprocessor-based systems are designed around the Z80. The Z80 microprocessor needs an
CHAPTER 11: Flip Flops
CHAPTER 11: Flip Flops In this chapter, you will be building the part of the circuit that controls the command sequencing. The required circuit must operate the counter and the memory chip. When the teach
8-bit Microcontroller with 8K Bytes In-System Programmable Flash AT90S8515
Features Utilizes the AVR RISC Architecture AVR High-performance and Low-power RISC Architecture 118 Powerful Instructions Most Single Clock Cycle Execution 32 x 8 General-purpose Working Registers Up
ARM Thumb Microcontrollers. Application Note. Software ISO 7816 I/O Line Implementation. Features. Introduction
Software ISO 7816 I/O Line Implementation Features ISO 7816-3 compliant (direct convention) Byte reception and transmission with parity check Retransmission on error detection Automatic reception at the
The stack and the stack pointer
The stack and the stack pointer If you google the word stack, one of the definitions you will get is: A reserved area of memory used to keep track of a program's internal operations, including functions,
Microcontroller Code Example Explanation and Words of Wisdom For Senior Design
Microcontroller Code Example Explanation and Words of Wisdom For Senior Design For use with the following equipment: PIC16F877 QikStart Development Board ICD2 Debugger MPLAB Environment examplemain.c and
Using the HT46R46 I/O Ports to Implement Half-Duplex SPI Communication
Using the HT46R46 I/O Ports to Implement Half-Duplex SPI Communication D/N: HA0150E Introduction This application explains how to use two I/O lines on the HT46R46 to implement half-duplex SPI communication.
MICROPROCESSOR AND MICROCOMPUTER BASICS
Introduction MICROPROCESSOR AND MICROCOMPUTER BASICS At present there are many types and sizes of computers available. These computers are designed and constructed based on digital and Integrated Circuit
MACHINE ARCHITECTURE & LANGUAGE
in the name of God the compassionate, the merciful notes on MACHINE ARCHITECTURE & LANGUAGE compiled by Jumong Chap. 9 Microprocessor Fundamentals A system designer should consider a microprocessor-based
ENGI E1112 Departmental Project Report: Computer Science/Computer Engineering
ENGI E1112 Departmental Project Report: Computer Science/Computer Engineering Daniel Estrada Taylor, Dev Harrington, Sekou Harris December 2012 Abstract This document is the final report for ENGI E1112,
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Question Bank Subject Name: EC6504 - Microprocessor & Microcontroller Year/Sem : II/IV
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Question Bank Subject Name: EC6504 - Microprocessor & Microcontroller Year/Sem : II/IV UNIT I THE 8086 MICROPROCESSOR 1. What is the purpose of segment registers
Exception and Interrupt Handling in ARM
Exception and Interrupt Handling in ARM Architectures and Design Methods for Embedded Systems Summer Semester 2006 Author: Ahmed Fathy Mohammed Abdelrazek Advisor: Dominik Lücke Abstract We discuss exceptions
Keil C51 Cross Compiler
Keil C51 Cross Compiler ANSI C Compiler Generates fast compact code for the 8051 and it s derivatives Advantages of C over Assembler Do not need to know the microcontroller instruction set Register allocation
AVR317: Using the Master SPI Mode of the USART module. 8-bit Microcontrollers. Application Note. Features. Introduction
AVR317: Using the Master SPI Mode of the USART module Features Enables Two SPI buses in one device Hardware buffered SPI communication Polled communication example Interrupt-controlled communication example
AVR131: Using the AVR s High-speed PWM. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE
AVR 8-bit Microcontrollers AVR131: Using the AVR s High-speed PWM APPLICATION NOTE Introduction This application note is an introduction to the use of the high-speed Pulse Width Modulator (PWM) available
How to design and implement firmware for embedded systems
How to design and implement firmware for embedded systems Last changes: 17.06.2010 Author: Rico Möckel The very beginning: What should I avoid when implementing firmware for embedded systems? Writing code
MICROPROCESSOR. Exclusive for IACE Students www.iace.co.in iacehyd.blogspot.in Ph: 9700077455/422 Page 1
MICROPROCESSOR A microprocessor incorporates the functions of a computer s central processing unit (CPU) on a single Integrated (IC), or at most a few integrated circuit. It is a multipurpose, programmable
EXERCISE 3: String Variables and ASCII Code
EXERCISE 3: String Variables and ASCII Code EXERCISE OBJECTIVE When you have completed this exercise, you will be able to describe the use of string variable and ASCII code. You will use Flowcode and the
AVR1321: Using the Atmel AVR XMEGA 32-bit Real Time Counter and Battery Backup System. 8-bit Microcontrollers. Application Note.
AVR1321: Using the Atmel AVR XMEGA 32-bit Real Time Counter and Battery Backup System Features 32-bit Real Time Counter (RTC) - 32-bit counter - Selectable clock source 1.024kHz 1Hz - Long overflow time
- 35mA Standby, 60-100mA Speaking. - 30 pre-defined phrases with up to 1925 total characters.
Contents: 1) SPE030 speech synthesizer module 2) Programming adapter kit (pcb, 2 connectors, battery clip) Also required (for programming) : 4.5V battery pack AXE026 PICAXE download cable Specification:
Quick Start Tutorial. Using the TASKING* Software Development Tools with the Intel 8x930 Family Evaluation Board
Quick Start Tutorial Using the TASKING* Software Development Tools with the Intel 8x930 Family Evaluation Board This explains how to use the TASKING Microsoft* Windows*-based software development tools
AVR130: Setup and Use of AVR Timers. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE
AVR 8-bit Microcontrollers AVR130: Setup and Use of AVR Timers APPLICATION NOTE Introduction This application note describes how to use the different timers of the Atmel AVR. The intention of this document
An Introduction To Simple Scheduling (Primarily targeted at Arduino Platform)
An Introduction To Simple Scheduling (Primarily targeted at Arduino Platform) I'm late I'm late For a very important date. No time to say "Hello, Goodbye". I'm late, I'm late, I'm late. (White Rabbit in
8051 MICROCONTROLLER COURSE
8051 MICROCONTROLLER COURSE Objective: 1. Familiarization with different types of Microcontroller 2. To know 8051 microcontroller in detail 3. Programming and Interfacing 8051 microcontroller Prerequisites:
Real-Time Clock. * Real-Time Computing, edited by Duncan A. Mellichamp, Van Nostrand Reinhold
REAL-TIME CLOCK Real-Time Clock The device is not a clock! It does not tell time! It has nothing to do with actual or real-time! The Real-Time Clock is no more than an interval timer connected to the computer
SKP16C62P Tutorial 1 Software Development Process using HEW. Renesas Technology America Inc.
SKP16C62P Tutorial 1 Software Development Process using HEW Renesas Technology America Inc. 1 Overview The following tutorial is a brief introduction on how to develop and debug programs using HEW (Highperformance
Microcontroller Systems. ELET 3232 Topic 8: Slot Machine Example
Microcontroller Systems ELET 3232 Topic 8: Slot Machine Example 1 Agenda We will work through a complete example Use CodeVision and AVR Studio Discuss a few creative instructions Discuss #define and #include
The Programming Interface
: In-System Programming Features Program any AVR MCU In-System Reprogram both data Flash and parameter EEPROM memories Eliminate sockets Simple -wire SPI programming interface Introduction In-System programming
8-bit Microcontroller with 1K Bytes In-System Programmable Flash. ATtiny13V ATtiny13
Features High Performance, Low Power AVR 8-Bit Microcontroller Advanced RISC Architecture 120 Powerful Instructions Most Single Clock Cycle Execution 32 x 8 General Purpose Working Registers Fully Static
Programing the Microprocessor in C Microprocessor System Design and Interfacing ECE 362
PURDUE UNIVERSITY Programing the Microprocessor in C Microprocessor System Design and Interfacing ECE 362 Course Staff 1/31/2012 1 Introduction This tutorial is made to help the student use C language
AN141 SMBUS COMMUNICATION FOR SMALL FORM FACTOR DEVICE FAMILIES. 1. Introduction. 2. Overview of the SMBus Specification. 2.1.
SMBUS COMMUNICATION FOR SMALL FORM FACTOR DEVICE FAMILIES 1. Introduction C8051F3xx and C8051F41x devices are equipped with an SMBus serial I/O peripheral that is compliant with both the System Management
ET-BASE AVR ATmega64/128
ET-BASE AVR ATmega64/128 ET-BASE AVR ATmega64/128 which is a Board Microcontroller AVR family from ATMEL uses MCU No.ATmega64 and ATmega128 64PIN. Board ET-BASE AVR ATmega64/128 uses MCU s resources on
(Refer Slide Time: 00:01:16 min)
Digital Computer Organization Prof. P. K. Biswas Department of Electronic & Electrical Communication Engineering Indian Institute of Technology, Kharagpur Lecture No. # 04 CPU Design: Tirning & Control
Serial Communications
Serial Communications 1 Serial Communication Introduction Serial communication buses Asynchronous and synchronous communication UART block diagram UART clock requirements Programming the UARTs Operation
An Introduction to MPLAB Integrated Development Environment
An Introduction to MPLAB Integrated Development Environment 2004 Microchip Technology Incorporated An introduction to MPLAB Integrated Development Environment Slide 1 This seminar is an introduction to
Accurate Measurement of the Mains Electricity Frequency
Accurate Measurement of the Mains Electricity Frequency Dogan Ibrahim Near East University, Faculty of Engineering, Lefkosa, TRNC [email protected] Abstract The frequency of the mains electricity supply
Digital Systems Based on Principles and Applications of Electrical Engineering/Rizzoni (McGraw Hill
Digital Systems Based on Principles and Applications of Electrical Engineering/Rizzoni (McGraw Hill Objectives: Analyze the operation of sequential logic circuits. Understand the operation of digital counters.
The AVR Microcontroller and C Compiler Co-Design Dr. Gaute Myklebust ATMEL Corporation ATMEL Development Center, Trondheim, Norway
The AVR Microcontroller and C Compiler Co-Design Dr. Gaute Myklebust ATMEL Corporation ATMEL Development Center, Trondheim, Norway Abstract High Level Languages (HLLs) are rapidly becoming the standard
Small Hardware Development and Prototyping Board for the SX28
Project Report: Small Hardware Development and Prototyping Board for the SX28 Project Number: PR57 1. Project Description 2. Schematic Diagram 3. Physical Diagram 4. Component Layout Diagram 5. Bill of
8-Bit Flash Microcontroller for Smart Cards. AT89SCXXXXA Summary. Features. Description. Complete datasheet available under NDA
Features Compatible with MCS-51 products On-chip Flash Program Memory Endurance: 1,000 Write/Erase Cycles On-chip EEPROM Data Memory Endurance: 100,000 Write/Erase Cycles 512 x 8-bit RAM ISO 7816 I/O Port
Measuring Resistance Using Digital I/O
Measuring Resistance Using Digital I/O Using a Microcontroller for Measuring Resistance Without using an ADC. Copyright 2011 John Main http://www.best-microcontroller-projects.com Page 1 of 10 Table of
8-bit Microcontroller with 2K Bytes Flash. ATtiny26 ATtiny26L
Features High-performance, Low-power AVR 8-bit Microcontroller RISC Architecture 118 Powerful Instructions Most Single Clock Cycle Execution 32 x 8 General Purpose Working Registers Fully Static Operation
Introduction to Microcontrollers
Introduction to Microcontrollers Motorola M68HC11 Specs Assembly Programming Language BUFFALO Topics of Discussion Microcontrollers M68HC11 Package & Pinouts Accumulators Index Registers Special Registers
Flash Microcontroller. Memory Organization. Memory Organization
The information presented in this chapter is collected from the Microcontroller Architectural Overview, AT89C51, AT89LV51, AT89C52, AT89LV52, AT89C2051, and AT89C1051 data sheets of this book. The material
Decimal Number (base 10) Binary Number (base 2)
LECTURE 5. BINARY COUNTER Before starting with counters there is some vital information that needs to be understood. The most important is the fact that since the outputs of a digital chip can only be
AUTOMATIC NIGHT LAMP WITH MORNING ALARM USING MICROPROCESSOR
AUTOMATIC NIGHT LAMP WITH MORNING ALARM USING MICROPROCESSOR INTRODUCTION This Project "Automatic Night Lamp with Morning Alarm" was developed using Microprocessor. It is the Heart of the system. The sensors
The 104 Duke_ACC Machine
The 104 Duke_ACC Machine The goal of the next two lessons is to design and simulate a simple accumulator-based processor. The specifications for this processor and some of the QuartusII design components
Microtronics technologies Mobile: 99707 90092
For more Project details visit: http://www.projectsof8051.com/rfid-based-attendance-management-system/ Code Project Title 1500 RFid Based Attendance System Synopsis for RFid Based Attendance System 1.
Atmel Norway 2005. XMEGA Introduction
Atmel Norway 005 XMEGA Introduction XMEGA XMEGA targets Leadership on Peripheral Performance Leadership in Low Power Consumption Extending AVR market reach XMEGA AVR family 44-100 pin packages 16K 51K
8-bit Microcontroller with 2K Bytes In-System Programmable Flash. ATtiny2313/V. Preliminary
Features Utilizes the AVR RISC Architecture AVR High-performance and Low-power RISC Architecture 120 Powerful Instructions Most Single Clock Cycle Execution 32 x 8 General Purpose Working Registers Fully
Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs
Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs AN033101-0412 Abstract This describes how to interface the Dallas 1-Wire bus with Zilog s Z8F1680 Series of MCUs as master devices. The Z8F0880,
CS 61C: Great Ideas in Computer Architecture Finite State Machines. Machine Interpreta4on
CS 61C: Great Ideas in Computer Architecture Finite State Machines Instructors: Krste Asanovic & Vladimir Stojanovic hbp://inst.eecs.berkeley.edu/~cs61c/sp15 1 Levels of RepresentaKon/ InterpretaKon High
Chapter 13. PIC Family Microcontroller
Chapter 13 PIC Family Microcontroller Lesson 01 PIC Characteristics and Examples PIC microcontroller characteristics Power-on reset Brown out reset Simplified instruction set High speed execution Up to
Freescale Semiconductor, I
nc. Application Note 6/2002 8-Bit Software Development Kit By Jiri Ryba Introduction 8-Bit SDK Overview This application note describes the features and advantages of the 8-bit SDK (software development
SPI. Overview and Use of the PICmicro Serial Peripheral Interface. Getting Started: SPI
SPI Overview and Use of the PICmicro Serial Peripheral Interface In this presentation, we will look at what the Serial Peripheral Interface, otherwise known as the SPI, is, and how it is used to communicate
Traditional IBM Mainframe Operating Principles
C H A P T E R 1 7 Traditional IBM Mainframe Operating Principles WHEN YOU FINISH READING THIS CHAPTER YOU SHOULD BE ABLE TO: Distinguish between an absolute address and a relative address. Briefly explain
8-bit Microcontroller. Application Note. AVR400: Low Cost A/D Converter
AVR400: Low Cost A/D Converter Features Interrupt Driven : 23 Words Low Use of External Components Resolution: 6 Bits Measurement Range: 0-2 V Runs on Any AVR Device with 8-bit Timer/Counter and Analog
Hardware and Software Requirements
C Compiler Real-Time OS Simulator Training Evaluation Boards Installing and Using the Keil Monitor-51 Application Note 152 May 31, 2000, Munich, Germany by Keil Support, Keil Elektronik GmbH [email protected]
DS1621 Digital Thermometer and Thermostat
www.maxim-ic.com FEATURES Temperature measurements require no external components Measures temperatures from -55 C to +125 C in 0.5 C increments. Fahrenheit equivalent is -67 F to 257 F in 0.9 F increments
TRILOGI 5.3 PLC Ladder Diagram Programmer and Simulator. A tutorial prepared for IE 575 by Dr. T.C. Chang. Use On-Line Help
TRILOGI 5.3 PLC Ladder Diagram Programmer and Simulator A tutorial prepared for IE 575 by Dr. T.C. Chang 1 Use On-Line Help Use on-line help for program editing and TBasic function definitions. 2 Open
CSE2102 Digital Design II - Topics CSE2102 - Digital Design II
CSE2102 Digital Design II - Topics CSE2102 - Digital Design II 6 - Microprocessor Interfacing - Memory and Peripheral Dr. Tim Ferguson, Monash University. AUSTRALIA. Tel: +61-3-99053227 FAX: +61-3-99053574
Take-Home Exercise. z y x. Erik Jonsson School of Engineering and Computer Science. The University of Texas at Dallas
Take-Home Exercise Assume you want the counter below to count mod-6 backward. That is, it would count 0-5-4-3-2-1-0, etc. Assume it is reset on startup, and design the wiring to make the counter count
AVR305: Half Duplex Compact Software UART. 8-bit Microcontrollers. Application Note. Features. 1 Introduction
AVR305: Half Duplex Compact Software UART Features 32 Words of Code, Only Handles Baud Rates of up to 38.4 kbps with a 1 MHz XTAL Runs on Any AVR Device Only Two Port Pins Required Does Not Use Any Timer
Lab 1 Course Guideline and Review
Lab 1 Course Guideline and Review Overview Welcome to ECE 3567 Introduction to Microcontroller Lab. In this lab we are going to experimentally explore various useful peripherals of a modern microcontroller
MODULE BOUSSOLE ÉLECTRONIQUE CMPS03 Référence : 0660-3
MODULE BOUSSOLE ÉLECTRONIQUE CMPS03 Référence : 0660-3 CMPS03 Magnetic Compass. Voltage : 5v only required Current : 20mA Typ. Resolution : 0.1 Degree Accuracy : 3-4 degrees approx. after calibration Output
Technical Note. Micron NAND Flash Controller via Xilinx Spartan -3 FPGA. Overview. TN-29-06: NAND Flash Controller on Spartan-3 Overview
Technical Note TN-29-06: NAND Flash Controller on Spartan-3 Overview Micron NAND Flash Controller via Xilinx Spartan -3 FPGA Overview As mobile product capabilities continue to expand, so does the demand
Introduction. What is an Operating System?
Introduction What is an Operating System? 1 What is an Operating System? 2 Why is an Operating System Needed? 3 How Did They Develop? Historical Approach Affect of Architecture 4 Efficient Utilization
8-bit Microcontroller with 1K Bytes In-System Programmable Flash. ATtiny13A
Features High Performance, Low Power AVR 8-Bit Microcontroller Advanced RISC Architecture 120 Powerful Instructions Most Single Clock Cycle Execution 32 x 8 General Purpose Working Registers Fully Static
CoE3DJ4 Digital Systems Design. Chapter 4: Timer operation
CoE3DJ4 Digital Systems Design Chapter 4: Timer operation Timer There are two 16-bit timers each with four modes of operation Timers are used for (a) interval timing, (b) event counting or (c) baud rate
4 Character 5x7 LED Matrix Display
Mini project report on 4 Character 5x7 LED Matrix Display Submitted by Agarwal Vikas, MTech II, CEDT K.Sreenivasulu M.E (Micro) II, CEDT CENTRE FOR ELECTRONICS DESIGN AND TECHNOLOGY INDIAN INSTITUTE OF
Below is a diagram explaining the data packet and the timing related to the mouse clock while receiving a byte from the PS-2 mouse:
PS-2 Mouse: The Protocol: For out mini project we designed a serial port transmitter receiver, which uses the Baud rate protocol. The PS-2 port is similar to the serial port (performs the function of transmitting
Animated Lighting Software Overview
Animated Lighting Software Revision 1.0 August 29, 2003 Table of Contents SOFTWARE OVERVIEW 1) Dasher Pro and Animation Director overviews 2) Installing the software 3) Help 4) Configuring the software
8-bit Microcontroller with 16K Bytes In-System Programmable Flash. ATmega162 ATmega162V. Features
查 询 ATMEGA162 供 应 商 Features High-performance, Low-power AVR 8-bit Microcontroller Advanced RISC Architecture 131 Powerful Instructions Most Single-clock Cycle Execution 32 x 8 General Purpose Working
isppac-powr1220at8 I 2 C Hardware Verification Utility User s Guide
November 2005 Introduction Application Note AN6067 The isppac -POWR1220AT8 device from Lattice is a full-featured second-generation Power Manager chip. As part of its feature set, this device supports
Using the HCS12 Serial Monitor on Wytec Dragon-12 boards. Using Motorola s HCS12 Serial Monitor on Wytec s Dragon-12 boards
Using Motorola s HCS12 Serial Monitor on Wytec s Dragon-12 boards Wytec s Dragon-12 development boards are pre-installed with DBug-12, a small monitor program which allows a user to interact with the board
1. Computer System Structure and Components
1 Computer System Structure and Components Computer System Layers Various Computer Programs OS System Calls (eg, fork, execv, write, etc) KERNEL/Behavior or CPU Device Drivers Device Controllers Devices
Experiment # 9. Clock generator circuits & Counters. Eng. Waleed Y. Mousa
Experiment # 9 Clock generator circuits & Counters Eng. Waleed Y. Mousa 1. Objectives: 1. Understanding the principles and construction of Clock generator. 2. To be familiar with clock pulse generation
Using The PIC I/O Ports
EE2801 -- Lecture 22 Using The PIC I/O Ports EE2801-L22P01 The Variety Of Available IO Ports The PIC 16F874 microcontroller has five different IO ports, accounting for thirty three of the processors forty
Implementing SPI Master and Slave Functionality Using the Z8 Encore! F083A
Application Note Implementing SPI Master and Slave Functionality Using the Z8 Encore! F083A AN026701-0308 Abstract This application note demonstrates a method of implementing the Serial Peripheral Interface
Section 29. Real-Time Clock and Calendar (RTCC)
Section 29. Real-Time Clock and Calendar (RTCC) HIGHLIGHTS This section of the manual contains the following topics: 29.1 Introduction... 29-2 29.2 Status and Control Registers... 29-3 29.3 Modes of Operation...
An Introduction to the ARM 7 Architecture
An Introduction to the ARM 7 Architecture Trevor Martin CEng, MIEE Technical Director This article gives an overview of the ARM 7 architecture and a description of its major features for a developer new
Debugging of Application Programs on Altera s DE-Series Boards. 1 Introduction
Debugging of Application Programs on Altera s DE-Series Boards 1 Introduction This tutorial presents some basic concepts that can be helpful in debugging of application programs written in the Nios II
Section 14. Compare/Capture/PWM (CCP)
M Section 14. Compare/Capture/PWM (CCP) HIGHLIGHTS This section of the manual contains the following major topics: 14.1 Introduction...14-2 14.2 Control Register...14-3 14.3 Capture Mode...14-4 14.4 Compare
Designing VM2 Application Boards
Designing VM2 Application Boards This document lists some things to consider when designing a custom application board for the VM2 embedded controller. It is intended to complement the VM2 Datasheet. A
Counters and Decoders
Physics 3330 Experiment #10 Fall 1999 Purpose Counters and Decoders In this experiment, you will design and construct a 4-bit ripple-through decade counter with a decimal read-out display. Such a counter
