From: aleksi on 9 May 2010 11:20 Hi There I'm new with programming a microcontroller, so sorry for some questions. I have a HCS08 SofTec starterkit. I want to control the light intensity of a external LED with a PWM. Therefor, I want to control the Duty Cycle of the PWM with the potentiometer on my starterkit. The ATD conversion is working. But my timer is not working and I have no idea why. To confirm that the timer is working, I set an interrupt. When the Timer has reached the channel value, port F on my starterkit should be increment (On port F are eight LEDs). But as I said, it dosen't work. Can you help me? Here's my code: #include <hidef.h> /* for EnableInterrupts macro */ #include "derivative.h" /* include peripheral declarations */ #include <MC9S08GB60.h> #define Input 0x00 #define Output 0xFF int low = 0; //low-value from ADC int high = 0; //high-value from ADC void interrupt ISR_Timer(void) { PTFD++; //verification, that the flag is set TPM1C0SC = TPM1C0SC; //clear channel 0 interrupt falg TPM1C0SC_CH0F = 0; } void InitPorts(void) { SOPT_COPE = 0; //disable Watchdog PTBDD = Input; PTDDD = Output; PTFDD = Output; } void InitAD (void) { ATD1C_ATDPU = 1; /* power on */ ATD1C_RES8 = 0; /* 10-bit Resolution */ ATD1SC_ATDCO = 1; /* continuous mode */ ATD1PE_ATDPE0 = 1; /* enable bit 1 */ ATD1SC_ATDCH = 0; /* select channel 1 */ } void InitTimer(void) { //Timer 1 Control & Status Register TPM1SC_TOIE = 0; //Timer 1 Overflow Interrupt disable TPM1SC_CPWMS = 1; //Center aligned mode TPM1SC_CLKSA = 1; //Internal Clock source TPM1SC_CLKSB = 0; TPM1SC_PS0 = 1; //Prescaler = 128 TPM1SC_PS1 = 1; //Prescaler = 128 TPM1SC_PS2 = 1; //Prescaler = 128 //Timer 1 Modulo Register TPM1MODH = 0xF4; TPM1MODL = 0x24; //Timer 1 Channel 0 Control Register TPM1C0SC_CH0IE = 1; //Channel 0 Overflow Interrupt enable TPM1C0SC_MS0B = 1; //PWM mode TPM1C0SC_ELS0A = 1; //Edge aligned mode } void main (void) { InitPorts(); InitAD(); InitTimer(); for (;;) { if(ATD1SC_CCF == 1) { TPM1C0VL = ATD1RL; TPM1C0VH = ATD1RH; high = ATD1RH; low = ATD1RL; } } } Allocation in *.prm file: VECTOR 8 ISR_Timer --------------------------------------- Posted through http://www.EmbeddedRelated.com
|
Pages: 1 Prev: NETWORK MARKETING Next: UControl Pix-Cell GSM Controller |