查看: 1987|回复: 6
|
关于PIC 的 INFINITE LOOP 信号 如何关起 当用2个BUTTON的时候
[复制链接]
|
|
请问有哪位大大 对这个有经验 。。。。就是我想 当我启动这个 INFINITE LOOP 的PWM 信号的时候。 我想一开始开启PIC 的时候 是 处于 没有信号 在 RC0 RC1 RC6 RC7. 过后当我 一个 按 RD7 BUTTON 的时候。。。启动了 RC0 RC1 RC6 的信号。。。可是当我突然想要 RD6 当做 关闭 RC0 RC1 RC6 RC7。的时候。。我对这个就没折了。。。。我尝试很多方法 来关掉这个INFINITE LOOP 还是不行。。。用SWITCH STATEMENT 也用过了。还有其他方法 也尝试过了。。。对VOID INTERRUPT 不是很熟悉。。。。。。。。请问有没有 大大能 帮忙我这个问题。。。。。。我先把 CODE 清空 到这个样子。。。。。现在 K2() RD6.....应该怎么放 才能关掉INFINITE LOOP. 简单来说 是想要 RD7 开启信号。。。。。。。RD6 中断信号。。。。。。。但是开启信号了 一定要保持 INFINITE...。。。。希望有大大能教教我方法。。。。。。。感恩不尽 本帖最后由 longcrystal 于 9-10-2012 01:57 AM 编辑
|
|
|
|
|
|
|
|
发表于 12-10-2012 12:05 AM
|
显示全部楼层
你的task() 里面的code长到 。。。而却都是重复又重复。。。为何不用looping method 喔(估计是新手吧)
优化成这样吧你 Example:
for(i=0;i<=max ; i+=0.05){
MA=1; MD=1;
delayMs(starting point + i);
MA=0; MD=0;
delayMs(starting point - i);
} (concept 是酱,自己想)
基本上要跳出infinity loop 写 break; 就可以料。。。 |
|
|
|
|
|
|
|

楼主 |
发表于 12-10-2012 08:06 PM
|
显示全部楼层
keat88 发表于 12-10-2012 12:05 AM 
你的task() 里面的code长到 。。。而却都是重复又重复。。。为何不用looping method 喔(估计是新手吧)
...
謝謝你的回答。。。。。用一個BUTTON 寫 ON /OFF 做到了。。。但是如果用其他BUTTON 來OFF那個INFINITE LOOP 還沒真正去試。。。。。
你說我的CODE 很長。。。我差不多算 新手之間 ,本身沒什麽時間學 MCU 。,。。所以故意為了PROJECT 的效果能達到我要 的 要求 就寫到 重負那麼長了

Uploaded with ImageShack.us
如果用你这个CONCEPT 能写出 不一样的 DELAY 我当然想。。。。谢谢你的建议丫。。。
所以想问最后一下 如果 DELAY是在不同的情况 发生 有时候 0.05ms 有时候 是0.45MS 有时候 是0.02MS 有时候是 0.06ms 都能用LOOPING 来写?? 想确认下。。我相信是可以
大概个人觉得是写 个 ARRAY TABLE 假设unsigned char pwm[31]={11,32,52,73,92,111,129,145,160,173,185,195,203,209,214,216,214,209,203,195,185,173,160,145,129,111,92,73,52,32,11};
假设31 PULSE 。。配合你说的 delayMs(pwn[max] + i); 方法~~
MAX 可能到 31就好 如果要做31个PULSE.......但是我这样说很简单。。。可能自己还要 另外++其他 LOOP 的东西~~~。。。可能要等以后才把 CODE 简易一下。。。。~~现在要集中做project先~~~~谢谢指导。
|
-
SPWM
|
|
|
|
|
|
|
发表于 13-10-2012 07:18 AM
|
显示全部楼层
longcrystal 发表于 12-10-2012 08:06 PM 
謝謝你的回答。。。。。用一個BUTTON 寫 ON /OFF 做到了。。。但是如果用其他BUTTON 來OFF那個INFINITE ...
不知道你讲什么pun...你还是照办规填写下资料吧,不然我都不知道你要做莫的,很难帮你的
|
|
|
|
|
|
|
|

楼主 |
发表于 13-10-2012 10:40 AM
|
显示全部楼层
keat88 发表于 13-10-2012 07:18 AM 
不知道你讲什么pun...你还是照办规填写下资料吧,不然我都不知道你要做莫的,很难帮你的
好吧謝謝你。。。我只是想講 。。。你說的方法。。。我大概簡易講一下 是不是這個道理~~~
你也是叫我自己想。。。。我還是 先做到東西才回 這個貼吧。。。。暫時沒東西了
|
|
|
|
|
|
|
|
发表于 20-11-2012 12:06 PM
|
显示全部楼层
longcrystal 发表于 13-10-2012 10:40 AM 
好吧謝謝你。。。我只是想講 。。。你說的方法。。。我大概簡易講一下 是不是這個道理~~~
你也是叫我自 ...
很多方法可以做到你的pwm。 不过先从简单开始, 既然你已经写了你的pwm code. 看起来不难。
一开始, 你用loop来做检查RD7的讯号, 然后当RD7 == 0 , 开始pwm loop.
你用infinite loop来做pwm loop, 不妨想想, 除了pwm, 你的pwm loop还可以做其他的动作吗?
|
|
|
|
|
|
|
|
发表于 29-11-2012 10:09 AM
|
显示全部楼层
要产生正弦波, 有很多方法。。楼主为何不看看版规呢? |
|
|
|
|
|
|
| |
本周最热论坛帖子
|