这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 求助

共3条 1/1 1 跳转至

求助

菜鸟
2011-09-28 09:12:22     打赏
stc12c5410ad  可不可以做到四路同时输出pwm?
为什么我的这个  代码   输出pwm频率为 10.52khz?我的目标是21.6k! //9月23日15:28:37 #include "DEFINE.h" void TIME0_INIT (void); void ADC_INIT (void); void PWM_init (void); void PWM3_set1 (void); void PWM3_set(unsigned char value); void delay(uchar delay_time) // 延时函数 { uchar n; uint m; for (n=0;n=30) { count=0; TEST_BYT=~TEST_BYT; } TF0=0; } void ADC_INIT(void) { AUXR = EADCI|T0X12; EADC_SPI = 1; P1=P1M0 =P1M1=0Xff; ADC_DATA=0; ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|ch; delay(2); } void ADC_ISR(void) interrupt 5 { ADC_CONTR &=! ADC_FLAG; ADC_VOL=ADC_DATA; AD_finished=1; ADC_DATA=0; } void PWM_init(void) { CCON=0X00; //设置PCA控制寄存器 CMOD=0x02; //08; //设置PCA工作模式寄存器 CL=0x00; //PCA低8位寄存器 CH=0x00; //PCA高8位寄存器 CCAPM3=0x42; //PWM3设置PCA工作方式为PWM方式(ECOM3=1,PWM3=1) CCAP3L=0x00; //设置PWM3初始值与CCAP0H相同 CCAP3H=0x00; // PWM1初始时为0 CR=1; //启动PCA定时器 } void PWM3_set (unsigned char value) { CCAP3L=value; //设置值直接写入CCAP3L CCAP3H=value; //设置值直接写入CCAP3H } void PWM3_set1() { CCAP3L=0x00; //设置值直接写入CCAP3L CCAP3H=0x00; //设置值直接写入CCAP3H } /*****************************/ #include "STC12C5410AD.H" #include #define uchar unsigned char #define uint unsigned int #define FOSC 11059200 #define BAUD 9600 #define ADC_POWER 0x80 #define ADC_FLAG 0x10 #define ADC_START 0x08 #define ADC_SPEEDLL 0x00 #define ADC_SPEEDL 0x20 #define ADC_SPEEDH 0X40 #define ADC_SPEEDHH 0x60 #define EADCI 0x10 //EADCI and EADC_SPI(IE.5) 是A/D转换功能允许寄存器 #define T0X12 0X80 //T0为1分频,不是12分频 #define EPC3L 0xfe sbit TEST_BYT = P2^2; bit AD_finished=0; uint ch=0x07; uchar value; unsigned int count; //int TIME0_50MS int ADC_VOL;



关键词: 求助     #define    

高工
2011-09-28 11:11:07     打赏
2楼
这个是不是需要重新设置一下格式,看着有点乱

高工
2011-09-28 12:43:57     打赏
3楼
确实有点乱!

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]