文号
t56589
阅读
5235
回复
6
收藏
5
Arduino吐槽贴,有跟帖的来同吐
2013/05/05
IP:北京
受到
https://www.kechuang.org/t/56300
的诱惑,买了2个Arduino mega2560板。这几天试了下。总体来说这玩意太好学了,比老夫当年玩单片机不知好学多少倍。but也有不少不太满意之处,感觉这些地方都来自于我通过arduino无法对单片机进行完全的掌控。
1,没有定时中断,必须去调用AVR的函数,又没说明白怎么调用。
2,PWM输出模式太固定,频率太低,不到1kHz。想把频率调高一些,必须调AVR函数,而且还始终找不到PWM控制器和管脚的对应关系。问题同上。
3,给管脚置值太慢。用示波器看了下,置一次管脚(置0或置1)需要耗费近5us的时间,70多个时钟周期啊,太慢了,不知cpu在这些时间里都干了啥才这么慢。
6
13年8个月前IP:未同步
522543
1楼
还是直接用avr方便
引用
评论
13年8个月前IP:未同步
523724
2楼
  我来提供解决方法,但不吐槽。
1.官方已经有定时器库了,目前有两个:

attachment icon Timer1.zip 5.71KB ZIP 26次下载
attachment icon Timer3.zip 6.83KB ZIP 29次下载   
使用方法参见文档:
  
attachment icon Arduino定时器官方库.docx 22.06KB DOCX 37次下载
2.上面那两个库可以设置PWM频率。需要特别注意的是,硬件PWM使用了定时器本身的功能,所以如果你改了频率,一些计时函数会出问题,比如micros()
micros是timer0的,timer1和timer3库不会影响它,原来搞错了。
3.avr.h那些端口函数是可以直接用的,比如说PORTD=0x00,速度就很快。
+10
科创币
清纯小萝莉
2013/05/09
高节操资料
引用
评论
13年8个月前IP:未同步
523840
3楼
引用第2楼laji3865689于2013-05-09 12:45发表的  :
  我来提供解决方法,但不吐槽。
1.官方已经有定时器库了,目前有两个:

attachment icon Timer1.zip 5.71KB ZIP 26次下载
attachment icon Timer3.zip 6.83KB ZIP 29次下载   
使用方法参见文档:
  
attachment icon Arduino定时器官方库.docx 22.06KB DOCX 37次下载
.......

right。我前几天试了portx直接操作,立即数2拍搞定;变量4拍搞定。比arduino快多了。[s:274]
引用
评论
13年7个月前IP:未同步
525934
4楼
好帖 !


终于可以用不同的频率了
引用
评论
13年7个月前IP:未同步
525940
5楼
关注一下。。。。。
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的