在主函数里实现软件PWM驱动LED和按键扫描功能
本帖最后由 时代还怪 于 2012-12-25 10:36 编辑有一次面试时面试官问了一道题目,大概要求是:
不用中断,不用硬件PWM,只在主函数里实现按键扫描(包括按键长短按),LED的亮灭,LED的一定频率闪烁,LED的明暗变化。
由于本人是菜鸟,所以当时可能是由于对要求的理解不清晰。(一开始用中断定时扫描按键和硬件PWM,但后来面试官又说出新要求说不能用中断和硬件PWM,那时觉得不中断定时怎么做到精确的频率呢??现在想想,思路不应该卡在这里的)现在把做出来的程序共享一下,希望各位有兴趣的大虾指教指教。
本程序编译器是winAVR2010
程序的主要是定时的问题,在主函数大循环里保证至少1ms一次循环,然后每循环一次计数一次,从而实现定时功能,以此作为LED的频率闪烁,PWM和按键扫描的定时基准。
这可用于某些抵挡驱动LED的应用场合中
页:
[1]