|
写的一个控制灯亮灭的程序,不起效果,求老手指点,用的是1213
/***************************************************************************
* main program
***************************************************************************/
#include "K0R_def.H"//头文件里定义中断MD_INTTM02
void PWM_init(void)
{
/******** CPU setting ******/
PER0 = 0b10100100; /* RTCEN=ADCENSAU0EN=1: supplies input clock to RTC, ADC, SAU */
PER1 = 0b00001000; /* OACMPEN=1: comparator/programmable gain amplifier*/
PER2 = 0b00000011; /*TAUOPEN=TAU0EN=1:inverter control function and TAUS*/
/******** clock setting ******/
OSMC=0x01;
CMC = 0b01000001;
/*****************************************
X1 clock oscillation stabilization wait time when STOP mode is released */
OSTS = 0x07; /* OSTS2=OSTS1=OSTS0=1: 2^18/fx */
CSC = 0b01000000; /* MSTOP=0: X1 operating
XTSTOP=0: XT1 stopped
HIOSTOP=0: internal high-speed oscillator operating */
while(OSTC != 0xff); /* oscillation stabilization ? */
CKC = 0b00001000; /* CLS=0: fCLK = main system clock= 10MHz*/
MCM0 = 1;
while(MCS == 0){}
DSCCTL = 0b00000000; /*Do not use 40 MHz Internal High-speed Oscillation*/
/**************************************************
interrupt mask flag setting */
MK0L = 0xff; /* interrupt servicing disabled */
MK0H = 0xff; /* interrupt servicing disabled */
MK1L = 0xff; /* interrupt servicing disabled */
MK1H = 0xff; /* interrupt servicing disabled */
MK2L = 0xff; /* interrupt servicing disabled */
MK2H = 0xff; /* interrupt servicing disabled */
/**************************************************
interrupt request flag setting */
IF0L = 0x00; /* clear interrupt request flags */
IF0H = 0x00; /* clear interrupt request flags */
IF1L = 0x00; /* clear interrupt request flags */
IF1H = 0x00; /* clear interrupt request flags */
IF2L = 0x00; /* clear interrupt request flags */
IF2H = 0x00; /* clear interrupt request flags */
TMPR002 = 0; //优先级
TMPR102 = 0;
/******** TAUS setting *******/
TPS0 = 0x0000; /* timer clock (CK00) = fCLK 0.1 us */
TMR02 = 0x0801; /*master clock*/
TMR03 = 0x0409; /*slave clock*/
TDR02 = 1000-1; /*period time=100us */
TDR03 = 500-1;
TOM0 = 0b0000000000001000; /*Slave channel output mode*/
TOL0 = 0b0000000000000000;
TO0 = 0b0000000000000000;
TOE0 = 0b0000000000001000;
PM1 = 0b11110000;
PM3.2 = 0; /*P32:output mode*/
POM3.2 = 0;
}
void PWM_start(void)
{
TMIF02 = 0;
TMMK02 = 0;
TOE0 = 0b0000000000001000; /* Enables the TO03 output operation by counting operation (slave) */
TS0 = 0b0000000000001001; }
void PWM_stop(void)
{
TT0 = 0b0000000000001000;
TOE0 = 0b0000000000000000;
/**************************************************
interrupt mask flag setting */
MK0L = 0xff; /* interrupt servicing disabled */
MK0H = 0xff; /* interrupt servicing disabled */
MK1L = 0xff; /* interrupt servicing disabled */
MK1H = 0xff; /* interrupt servicing disabled */
MK2L = 0xff; /* interrupt servicing disabled */
MK2H = 0xff; /* interrupt servicing disabled */
/**************************************************
interrupt request flag setting */
IF0L = 0x00; /* clear interrupt request flags */
IF0H = 0x00; /* clear interrupt request flags */
IF1L = 0x00; /* clear interrupt request flags */
IF1H = 0x00; /* clear interrupt request flags */
IF2L = 0x00; /* clear interrupt request flags */
IF2H = 0x00; /* clear interrupt request flags */
}
int LED_count=0;
__interrupt void MD_INTTM02( void )
{ /* Start user code. Do not edit comment generated here */
LED_count++;
if(LED_count==20000)
{P3.2 = ~P3.2;LED_count =0;}
TMIF00= 0;
return; /* End user code. Do not edit comment generated here */
}
void main(void)
{
DI();
PWM_init(); /* Initial Setting */
PWM_start(); /* Operation Start */
EI();
while(1)
{
; /*wait interrupt*/
}
/* main loop */
while(1){
WDTE = 0xac; /* watchdog timer counter clears and restarts */
}
PWM_stop(); /* Operation Stop */
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|