SIM_PCE ghost register

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

SIM_PCE ghost register

1,075 Views
josh_outerspace
Contributor I
here is an excerpt from the MCF5213 reference manual refering to normal ADC power mode.


1. Normal power mode
This mode operates when:
— At least one ADC converter is powered up (PD0 or PD1=0 in the POWER register);
— Both auto power-down and auto standby modes are disabled (APD=0, ASB=0 in
ADCPOWER);
— The ADC’s clock is enabled (ADC=1 in the SIM module’s SIM_PCE register).


I am having trouble making the ADC work I suspect because I never set the ADC bit in the SIM_PCE register. The problem is, I cant find it anywhere! A search only finds references to this ghost module in the ADC section. A search for SIM_PCE in the include directory finds nothing. What do they mean by SIM_PCE and how come this particular string only shows up in the section describing the ADC? If there actually were a SIM_PCE register wouldn't it be described in detail somewhere? I would gladly set this bit if I could find it. Is something very simple completely going over my head?

Message Edited by J JORDAN on 2006-12-0703:34 PM

Labels (1)
0 Kudos
1 Reply

377 Views
josh_outerspace
Contributor I
Sorry for the double post I had trouble editing. Here is my code, maybe its not the SIM_PCE that makes all my readings a zero.

/*
 * File:  main.c
 * Purpose:  sample program
 *
 */

#include "common.h"
#include "mcf5xxx.h"
#include

__interrupt__ void pit0_irq(void)
{//vector 64+55=119, source =55
 //take a read from the ADC
 unsigned int adc_result; //store adc result here
 PIT0_PMR = 0x6000;
 ADC_CTRL1 |= (113); //start conversion
 adc_result = (ADC_ADRSLT0>>3); //read result register
 printf("%d\n\r", adc_result);

 fflush(stdout);

}

int main()
{
 GPIO_DDRTC = 0xff; //init output port
 GPIO_PORTTC = 0x00; //init port pins
 mcf5xxx_set_handler(64 + 55, pit0_irq); //init irq

 //PWM module setup, outputs 1, 3, 5, 7
 GPIO_PTDPAR = 0x0f; //pwm outputs on port td
 PWM_PWMPOL = 0xaa; //pulses high
 PWM_PWMCTL = 0xf0; //concatenate all 4 channels to 16bit
 PWM_PWMDTY0 = 0x00;
 PWM_PWMDTY1 = 0x10;
 PWM_PWMPER0 = 0xff;
 PWM_PWMPER1 = 0xff;
 PWM_PWMSCLA = PWM_PWMSCLB = 8;
 PWM_PWMCLK = 0xaa; //select scaled clocks
 PWM_PWME = 0xaa; //enable all channels


 //PIT module setup
 PIT0_PCSR = PIT_PCSR_PRE(11)|PIT_PCSR_PIE|
  PIT_PCSR_RLD|PIT_PCSR_EN;
 PIT0_PMR = 0x6000;

 //configure analog to digital converter
 ADC_CTRL2 = 3; //clock div assuming fast clock
 ADC_ADSDIS = (11); //stop at AN1, only perform sample0 with AN0
 ADC_POWER &= ~(0x0001); //power up adc A
 GPIO_PANPAR = 1; //setup AN0 to primary pin function


 INTC_ICR55 = 0 | INTC_ICR_IP(6) | INTC_ICR_IL(6);
 //set priorities for pit0 irq55
 INTC_IMRH &= ~INTC_IMRH_MASK55;
 //unmask that specific interrupt

 mcf5xxx_irq_enable();

 while(1)
 {

 }

}
0 Kudos