ADuC7026产生随时间变化的占空比变化的PWM信号
0赞
发表于 1/23/2012 10:43:02 AM
阅读(2380)
#include#include void IRQ_Handler() __irq; void ProPPM(); void ADCpoweron(int time); int PeriodCount=0; int PPM=0; int main(void){ T1LD=0x1A2; ADCCON=0x7E3; ADCpoweron(2000); REFCON=0x01; ADCCP=0x02; //GP1CON = 0x011; // Setup tx & rx pins on P1.0 and P1.1 GP3DAT = 0x01010000; T1CON=0xC0; IRQEN |= 0x08; GP4DAT = 0x04000000; while (1) { } } void IRQ_Handler() __irq { if ((IRQSTA & GP_TIMER_BIT) !=0) { PPM++; PeriodCount++; ProPPM(); T1CLRI = 0; } return; } void ProPPM() { int t; //while(!ADCSTA){} t=(int)(0.0244*(ADCDAT>>16)+100.0); if(PPM==t) { GP3DAT=GP3DAT&0x0F0E0000; } if(PeriodCount > 2000) { GP3DAT = 0x01010000; PPM = 0; PeriodCount=0; } } void ADCpoweron(int time) { ADCCON=0x7E3; // power-on the ADC while (time >=0) // wait for ADC to be fully powered on time--; }
