- 打卡等级:以坛为家II
- 打卡总天数:562
- 最近打卡:2025-08-22 11:04:46
金牌会员
- 积分
- 1662
|
版主你好,对你的程序很感兴趣。把你的程序下载到单片机里运行正常。程序里的主频是固定位40M吗?我加了OLED12864(ST7567芯片)显示模块,结果40M频率无法显示,将主频改为24M后,屏幕能显示了(我的这块屏幕主频不能太高,高于24M就不显示了),但灯不闪烁了。请版主支招。谢谢!
while(1)
{
task_start(0);//协程0开始
P34 = ~P34;//每次执行取反P00端口电平
task_delay(100);//设定延时100ms
task_wait(!P32);//P32电平作为判断条件,为1则等待,为0则继续向下执行
//因为按键按下为0,所以正常是一直闪烁,按下P32则LED00停止闪烁
task_end(1);//为1则循环执行
task_start(1);//协程1开始
P35 = 0;//P01端口置0,LED亮
task_delay(200);//设定延时200ms
P35 = 1;//P01端口置1,LED灭
task_delay(500);//设定延时500ms
task_end(1);//为1则循环执行
task_start(2);//协程2开始
task_delay(1000);//先长延时一段
task_for(cnt1=0, cnt1++)//初始化和运行表达式(中间要用逗号链接!)
{
task_for(cnt2=0, cnt2++)//第二层for循环
{
P36 = ~P36;//取反P02端口
task_delay(50);//小延时,快速闪烁
}
task_break(cnt2<3);//第二层for的判断条件,为1则返回for开头,为0则继续执行
P36 = 0;//强制给P02端口置低
task_delay(300);//设定延时300ms
}
task_break(cnt1<5);//第一层for的判断条件,为1则返回for开头,为0则继续执行
task_end(1);//为1则循环运行
task_start(3);//协程0开始
OLED_BuffClear(); //清屏
OLED_BuffShowString(0,0,"温度",0);
OLED_BuffShowChar(10,2,'A',0);
OLED_BuffShow();
task_delay(2);
task_end(1);
}
} |
|