AN2109 Freescale Semiconductor / Motorola, AN2109 Datasheet - Page 29

no-image

AN2109

Manufacturer Part Number
AN2109
Description
MPC555 Interrupts
Manufacturer
Freescale Semiconductor / Motorola
Datasheet
7.3.1.1 Example 1: Initialization and Main Routines
#include "mpc555.h"
void init555()
{
USIU.SYPCR.R = 0xffffff03;
}
void initPIT()
{
}
main()
{
}
UINT32 counter = 0 ;
UINT32 loopctr = 0 ;
USIU.PLPRCR.B.MF = 0x009;
while(USIU.PLPRCR.B.SPLS == 0);
UIMB.UMCR.B.HSPEED = 0;
USIU.PITC.B.PITC = 1000;
USIU.PISCR.B.PITF = 1;
USIU.PISCR.B.PTE = 1;
USIU.PISCR.B.PIRQ = 0x80;
USIU.PISCR.B.PIE = 1 ;
USIU.SIMASK.R = 0x40000000;
init555();
initPIT();
asm(" mtspr EIE, r3");
while(1)
{
}
loopctr++;
Freescale Semiconductor, Inc.
For More Information On This Product,
Rev. 0, 26 July 2001
MPC555 Interrupts
Go to: www.freescale.com
// Global for ISR to hold the
// number of PIT interrupts
// Loop counter for main loop
// Simple MPC555 Initialization
// Disable watchdog timer
// Run at 40MHz for 4MHz crystal
// Wait for PLL to lock
// Run IMB at full clock speed
// STEP 1: MODULE SPECIFIC INITIALIZATION
// Setup count value.
// Freeze enabled to stop PIT
// PIT enabled to start counting
// STEP 2: LEVEL ASSIGNMENT
// Level 0 PIT interrupt
// STEP 3: ENABLE INTERRUPT
// Enable PIT interrupt
// STEP 4: SET APPROPRIATE SIMASK BITS
// Enable level 0; others disabled
// Perform a simple 555 initialization
// Init PIT to generate interrupts
// FINAL STEP: SET MSR[EE], MSR[RI] BITS
// Wait for PIT interrupts
// Increment loopctr for something to do
MOTOROLA
29

Related parts for AN2109