DHBT2023 发表于 2024-9-29 11:38
定时器1ms这个是可以的,P20=1放他中断里,可以
void Timer0_Init(void) //1毫秒@24.000MHz
{
中断函数中,执行P20=1,并延时,再标志位取反,主运行中,循环运行,不会的话,中断的官方例程,小改一下,挺方便的, Shoteen 发表于 2024-9-29 17:17
程序问题:
1.main函数没有加while(1)循环,main函数里的语句会重复执行,也就是说你的初始化操作一直在跑。 ...
另外这个只是实现的其中一种方法,实际应用中不会这样在main线程里死等,这样CPU性能发挥不到极致,一般会在每次循环查询一下标志,获取是否计时完毕,计时完毕则进行某个操作,计时没到则继续执行其他任务,保证其他任务一直能够获取到CPU处理权限。 乘风飞扬 发表于 2024-9-29 14:00
改一下延时函数:
大佬就是大佬。我搞了一个星期。没有搞好。搞的我怀疑人生了。。
原来就是我程序问题,我是仿的别的大佬写的程序,没有仿到家。
用大佬的,一下解决了问题。
这几天刚刚反复看c语言,if for while。。。
刚刚在别的论坛看老师讲了if的 位条件。
回来就发现大佬用的bit 位条件。
果然不同凡响。。谢谢!
看了一些程序,没有重视 if的 位 条件,只是在重视条件语句。
Shoteen 发表于 2024-9-29 17:17
程序问题:
1.main函数没有加while(1)循环,main函数里的语句会重复执行,也就是说你的初始化操作一直在跑。 ...
谢谢回复! 乘风飞扬 发表于 2024-9-29 14:00
改一下延时函数:
用大佬的,一下解决问题了。我看了我的,用1ms中断的标志位的用法估计不对。还多用一个变量。 DHBT2023 发表于 2024-9-29 21:11
用大佬的,一下解决问题了。我看了我的,用1ms中断的标志位的用法估计不对。还多用一个变量。 ...
现在用这个1ms为母体。可以设置不同的定时 俸上视频,以示感谢
wangxiangtan 发表于 2024-9-29 16:05
能不能这样,设置个变量m=0,定时器里面每次m+1,加到N就是Nms,
delay函数里面用while判断变量值m是否>=N ...
是这个意思
页:
1
[2]