11689|21

7

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

一个不错的avr代码生成软件 [复制链接]

运用:avr初始化代码生成
T0:
CTC:
一般用来生成占空比百分之五十的方波,如果是从OC0输出,则选择“匹配时OC0取反”,下面勾选FOC0,同时可选OCIE0(比较匹配中断使能),如果不从OC0输出,选择“不与OC0连接”,后面只选择OCIE0,通过中断来控制。TOIE0在这个模式下没有用,因为这个模式计数器从0开始计数一直到OCNT0然后重新计数,不会到达0XFF,所以没有溢出中断。
相位修正PWM:
由于是双向满程计数,所以晶振和分频都确定了,总的周期也就确定了,通过选择“匹配时引脚OC0电平”来选择是通过是否通过OC0来输出方波。通过滑块调整占空比,TOIE0和OCIE0都能选择,但由于双向计数,定时中断如果有赋初值的话要注意。其实定时中断里可以不赋初值。
快速PWM::
设置与上面类似,就是0到0XFF单向计数,匹配值和0xFF时电平变化。
T2:
与T0相同,只是可以外接其他晶振。
T1:
CTC:
CTC(TOP=ICR1):
不能溢出,而且ICR1没有双缓冲,所以适合频率不变的情况,此时OCR1A和OCR1B都可以调相位
CTC(TOP=OCR1A):
不能溢出,OCR1A做TOP用,剩下OCR1B可以调相位
PWM:
8、9、10位的各种PWM特点就是总计数周期一样,就是根据分频数和位数决定的,和T0差不多。
相位修正PWM(TOP=ICR1)和相位与频率修正PWM(TOP=ICR)基本一样:
可以通过ICR1的设定来确定计数的周期,此时A,B都可以调整占空比。
相位与频率修正PWM(TOP=OCR1A):
OCR1A有双缓冲,所以可以方便修改频率,此时B可调占空比。
相位修正PWM(TOP=OCR1A):
设定OCR1A来确定计数周期,但是运行中修改频率有专有模式,最好不用此模式,这样就浪费了OCR1A,所以这个模式貌似没什么用。
输入捕获:设置PD6/ICP为带上拉输入,ICES1设置上升沿还是下降沿触发捕获(1上升,0下降),ICN1设置是否噪声抑制。选中TICIE1,这样有捕获后产生中断,可以记录下当时的时间,软件会自动生成相应代码,只需要声明一个全局uint变量来接受就可以了

adc:
参考电压默认,dip封装的adc通道选择只能选择单通道,确定好分频因子后,勾选ADCEN,ADATE,然后在需要开启ADC的时候加入代码ADCSRA|=BIT(ADSC);这样系统就自己按照制定频率进行采样,我们要做的就是随时去读取寄存器的采样值就行了。很简单。AREF和AVCC连接到节点,这个节点通过一个50欧姆电阻连接到电源,通过一个104电容接地。
模拟比较器:
比较简单,就是两个输入如果不一样大小,或者违反之前确定的大小规则,就会触发中断或输入捕获,PA端口如果不进行adc转换,也可以作为负极输入端。
SPI:
模式一般采取第一种,也就是datasheet里出现的mode(0,0),勾选SPE,先发高位,主机模式,确定好分频就行了。读spi-E2PROM的时候总提示读操作与写操作冲突,连续读到第三次的时候就没问题了,不知道为什么。
找到原因了,不是spi的问题,是要读“系统状态”RDSR",先写instruction=0x05,然后读出来的数末位如果是1代表忙,用while等待。等待之后重新拉高在拉低一次片选线,就可以读了,哈哈哈
TWI:
如果不采用外部上拉电阻,则PC的两个TWI端口应设置为输入,有上拉。模式选择TWEN,TWEA,从机地址选择要控制的原件相应地址(参考datasheet),分频因子按推荐来设置。最重要的是在生成的twi_stop()函数后设置延时,这个东西困扰了我一天,早就测试了一个keil形式的延时,只是循环,没有NOP()语句,估计被优化掉了,干扰了思考。用AT24C02测试,写入的时候简单,读的时候粗心,没有仔细看顺序,应该是START->TO WRITE->SEND(ADDRESS)->START->TO READ->RECEIVE->STOP,不是想当然的开始-地址-数据-结束!
UART:
其实avr是usart,增强型uart,但是电脑是uart,如果需要同步串行的话应该用spi就可以了,所以只学习了下异步串行,本来很简单的事情仿真却出现了大问题,逻辑冲突,后来才知道proteus的compim也就是串口模型本身是带232芯片的,只需要把rxd和txd分别按相同名称相连就行了。
注意一点:
  while (!(UCSRA&0x80));//准备好了可以接收,不是接收后延时
  a=UDR;
  while(!(UCSRA&0x40));//同理,准备好了可以发送
  UDR=a;
不要搞错顺序。

avr.rar

194.4 KB, 下载次数: 245

售价: 5 分芯积分  [记录]

最新回复

最近在干嘛?  详情 回复 发表于 2013-2-2 13:10

点评

好东西  详情 回复 发表于 2012-8-13 14:29
点赞 关注
 

回复
举报

73

帖子

0

TA的资源

纯净的硅(中级)

沙发
 
好东西,占沙发
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
好定西,可惜用不上
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

4
 
CWGF
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(高级)

5
 
HENHAO,xiexiela !
 
 
 

回复

140

帖子

0

TA的资源

一粒金砂(中级)

6
 
不错
 
个人签名喜好电子DIY的小伙伴可以关注我的微信公众号:电子创客派
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

7
 
Good
 
 
 

回复

4996

帖子

19

TA的资源

裸片初长成(初级)

8
 
好东西,其实可以用ICC自己也可以参数代码!!!!
 
个人签名我的博客
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

9
 

好动西!不懂好学习,懂了方便

好动西!不懂好学习,懂了用起来:D 方便
 
 
 

回复

4138

帖子

0

TA的资源

五彩晶圆(中级)

10
 
太贵了
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(初级)

11
 
没用过:$ :$
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

12
 
绝对值得拥有
 
个人签名坚持
 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

13
 

好东西,还不错!谢谢分享!

不过好像ICCAVR里也有一个代码生成的工具的!

 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

14
 
不错看看
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(中级)

15
 

回复 楼主 w2008114110 的帖子

好东西,哈哈
 
 
 

回复

69

帖子

1

TA的资源

一粒金砂(高级)

16
 
好东西,占沙发
 
 
 

回复

27

帖子

0

TA的资源

一粒金砂(中级)

17
 
赚钱中
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

18
 

回复 楼主 w2008114110 的帖子

好东西
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

19
 
不会用啊
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

20
 

不会用啊

匹配时引脚oc2???   还有时钟源
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表