|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
用pwm控制发光二极管的亮度,各位大佬帮忙看看究竟是哪里出现了问题。(开关就先不设置了,中断暂时也不太会用就先不用了)
4 j$ c! q. }, K M 代码如下:
) ^7 E% _" Q& @) Y( k# Y#include <SC92F725x_C.H>5 S9 X! D a! E. V' {: Q3 r
#define LED1_qidong PWMDTY4=25 //使能led1启动 周期为1/4
4 V, g9 L: i" K" R4 }/ u1 { G #define led1_guanbi PWMDTY4=0 //禁止led1启动! H; |9 l8 ^) _6 d/ m
void PWM_Init(void); s! {# s0 n* Z0 g& R" n5 e
void Delays() //延时函数
7 T" W" g9 f; L2 t8 V# m$ a{" o3 y9 c8 g F; p9 i/ b w! r
int i,j;
) X1 R z5 }8 a9 B2 L for(i=5000;i>0;i--)//延时5s
7 B1 u4 x6 n+ G2 v/ g% t) \ for(j=110;j>0;j--);
5 d8 f$ R7 F- D/ t9 c
* O6 v" V3 c, K, o J6 z& |: G }
8 J2 m- U9 Z( Fvoid PWM_Test(void). }, D6 j, @; ^9 L% o& Q2 R4 N/ S
{
$ _# {+ |, s; _ PWM_Init();
3 V, b8 x* q0 |( W1 S while(1)
; l; H. Z; p% z+ _' R! L {
( a6 x5 _. @- z led1_qidong;
" x7 s$ ?" Y& z; Q5 l3 c Delays();
3 A8 R1 z r% \! k led1_guanbi;9 _4 h+ U) h' p% l3 w6 r
Delays();, S" n: ~( g8 x' R
s5 v" I% P7 g( }1 E }
) v, E- g, j# ~5 M9 w) g }
. ^1 l) B1 n1 J6 {" { void PWM_Init(void)
( I: f1 V- h6 K) S {
: c) ^( U+ m* d P2CON = 0x40; //0100 xx00 设置P2.6推挽输出
. ^: {$ a' H' v P2PH=0x80; //1000 xx00
" n: q3 J. m6 Y) y6 l6 L PWMCON = 0x04; //PWM关闭,Fsys/32频率;$ `3 P4 s6 Q. A8 X7 H: T
PWMCFG0 = 0x02; //PWM4输出到I/O
1 Y, w" W+ i5 O9 k: G PWMCFG1 = 0x00; //PWM4不反向
2 }( m' i$ y6 b PWMPRD = 99; //PWM周期=(99+1) ' Q5 P+ B6 m5 z h
PWMDTY4 = 60; //PWM4的Duty = 0/100 =0 默认关闭 k: O$ i) \5 R5 h# S1 z
PWMCON |= 0x80; //启动PWM工作) s* \! X3 ^6 _5 a& Y' X
// IE1 |= 0x02; //开启PWM中断
% C; V- X6 ]0 D. N// EA = 1;
9 a5 O9 r+ H. b2 e0 [ }. O2 G2 L1 a; e' M. e J
void PWMInt(void) interrupt 8
" i3 s/ W3 k# j& Y# a7 w. X* c2 Q {
( N5 L( I0 `, W) v P02=~P02;
2 P* C3 ~! R) ^4 ~- o& r* \ }2 V$ q" H2 f; U& G$ |8 j2 s: r3 w
|
|