专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
PIC16F73 PWM模块控制电机,RB5口接按键切换显示,运行中操作按键为什么会影响PWM输出
2019-03-25 18:51
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
PIC单片机
2693
8
1165
/*********初始化子程序**********************************************/
void init()
{
ADCON1=0x07; //A口设定为数字口
TRISA=0x00; //A口设为输出
PORTA=0x00; //置A口为低电平
TRISB=0xff; //B口设为输入
PORTB=0xFf; //置B口为高电平
TRISC4=1; //使能RC4脚为输入
RC4=0;
//***定时器TMR0初始化***
T0CS=0; //TMRO时钟源选择内部指令周期时钟(Fosc/4)
PSA=0; //预分频器分配给TMR0模块
PS0=0; //TMR0预分频比1:8,PS0=0
PS1=1; //TMR0预分频比1:8,PS1=1
PS2=0; //TMR0预分频比1:8,PS2=0
TMR0=0x83; //定时1000微秒,置初值为256-125+13
T0IF=0; //清除TMR0的中断标志
T0IE=1; //TMR0中断允许
//***捕捉初始化***
TMR1CS=0; //TMR1时钟源选择内部指令周期时钟(Fosc/4)
T1CKPS1=0;
T1CKPS0=1;
TMR1H=0;
TMR1L=0;
TMR1ON=0; //TMR1计数关闭
TMR1IE=0; //关闭T1溢出中断
TMR1IF=0;
CCP1IE=1; //使能CCP1捕获中断
CCP1CON=0x05; //捕获上升沿
CCP1IF=0;
PEIE =1; //外围中断使能
//***CCP2的PWM功能初始化***
PR2=0x7C; //装载PR2寄存器设置PWM周期,频率为8kHz
CCP2CON=0x3C; //CCP2模块工作在PWM模式
CCPR2L=0x00; //装载CCPR2L寄存器设置PWM占空比,为0%
TMR2IF=0; //清零PIR1寄存器中的TMR2IF中断标志位
T2CKPS0=0; //定时器TMR2设置1:1预分频比,T2CKPS0=0
T2CKPS1=1; //定时器TMR2设置1:1预分频比,T2CKPS1=0
TMR2ON=1; //T2CON寄存器中的TMR2ON位置1使能Timer2
TRISC1=0; //清零TRISC1位,使能CCP2引脚输出驱动器
//***************************
GIE=1; //开全局中断
}
//************主函数**********
void main()
{
init();
OE =0;
time_num = 5;
time_numold=time_num;
set_speednum=1000;
display_flag=1;
speed_setmid=500;
set_speed = 500;
PWM_process(0);
OE =1;
page1();
while(1)
{
if(flag>=20) //一毫秒扫描一次键盘
{
flag=0;
Read_key();
if(DoorHall==0)
{
Doorflag=0; //安全门关闭
}
if(DoorHall==1)
{
Doorflag=1; //安全门打开
}
}
if(flag2==1) //500ms更新一次显示
{
flag2=0;
display();
}
if(start==1)
{
if(PID_flag2>=60)
{
filter();
if(c_over==1)
{
if(Doorflag==0)
{
Speed_PID();
}
else
{
speed_i_v=0;
speed_different=0;
speed_out=0;
//speed_ct=10;
speedm =0;
//speed_ct_old=10;
speed_setmid=speednum;
//set_speed = 500;
PWM_process(0);
PWM_process(0);
}
c_over=0;
}
PID_flag2=0;
}
}
}
}
复制代码
此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
dingzy_2002
2019-03-25 23:34
木瓜舟舟 发表于 2017-7-21 09:32
按键按一下,速度冲一下,长按着,速度能冲到顶
速度冲一下?
是不是PWM输出波形变成高电平一段时间?
如果是这样,看了你的程序段,可能有以下原因:
1.看门狗问题:你程序设置的预分频器是给T0的,这样看问狗复位时间是18MS左右,但主程序部分未见复位看门狗语句.
加载中...
查看其它8个回答
一周热门
更多
>
相关问题
相关文章
一种用PIC单片机主时钟驱动的老式挂钟
0个评论
单片机程序必知的几个寄存器
0个评论
单片机 矩阵式按键
0个评论
51单片机上移植C语言的printf()
0个评论
STC89C52MCU--软件实现系统复位
0个评论
单片机C语言程序该这样写!不是教科书上教的那样!转[]
0个评论
单片机并行I/O口(P0)硬件结构
0个评论
壹:单片机的内部资源
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
速度冲一下?
是不是PWM输出波形变成高电平一段时间?
如果是这样,看了你的程序段,可能有以下原因:
1.看门狗问题:你程序设置的预分频器是给T0的,这样看问狗复位时间是18MS左右,但主程序部分未见复位看门狗语句.
一周热门 更多>