完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
今天在学习做led颜色渐变的时候,打好后的程序用了u16,之后发现渐变并不平滑。找了很久,终于知道原因在于unsigned把int的负值给消掉了,真的很难找…所以想知道为什么没有负值会对led的渐变产生这么大的影响。下面是我用的程序,是转载了本网站 燚潹╰☆╮洧沵 的程序:
#include #define N 1 //控制速率 #define T 1200 //设定T的值, #include "delay.h" ***it led1=P1^0; ***it led2=P1^1; ***it led3=P1^2; u16 t=0; char sign=0; //亮暗标志 void designed() //控制函数 { if(sign==0) t+=(N+1); //灯亮的时间较快 else t-=N; //灯灭的时间 较慢 } void wake() //判断函数 { if(t>T)//如果t超过了做大值T { t=T; sign = 1;//控制变量 }else if(t<0) { t=0; sign = 0; } } void main ()//主函数 { for(;;) { designed(); wake(); led1 = 0; //灯亮 led3 = 0; led2=1; delay(t);//灯灭 led3=1; led1=1; led2=0; delay(T-t); } } |
|
相关推荐
|
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
506 浏览 0 评论
607 浏览 0 评论
837 浏览 0 评论
832 浏览 0 评论
RT-Thread与英飞凌(infineon)合作得板子PSOC 6 板子学习
768 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
17058 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-14 04:45 , Processed in 1.058936 second(s), Total 61, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
6217