当前位置:首页 > 单片机 > 单片机
[导读]首先声明一点,真正的新手是看不懂数据手册的,如果你能,说明你已经入门了。所以,当你看到数据手册头疼的时候,不要灰心,其实别人和你一样。但是数据手册是AVR最好的书,你又必须得看懂数据手册,看数据手册不能急

首先声明一点,真正的新手是看不懂数据手册的,如果你能,说明你已经入门了。所以,当你看到数据手册头疼的时候,不要灰心,其实别人和你一样。

但是数据手册是AVR最好的书,你又必须得看懂数据手册,看数据手册不能急于求成,要一遍一遍的多看,应该说每次看都有不同的收获。

新手看第一遍,迷迷糊糊。

看第二遍,大体了解AVR有哪些模块。

第三次看,知道AVR的部分寄存器,但是仍然不知道如何使用,如何编程。

在这里就要发挥ICC AVR的优势了,使用ICC avr的程序生成向导(使用方法会在新手入门里面介绍),你使用哪一个模块,就生成哪一个模块的程序,然后再去看程序中使用到了哪写寄存器,再到数据手册里面去搜索相应词语,查看寄存器各个位的介绍和意义,以及设置方法。多这样几次,你就能够熟悉起来了,也就能看明白数据手册了。

一个精通单片机的人,无论拿来一个什么芯片,看看数据手册,很快就可以使用。

这里以定时器的数据手册为例:

//ICC-AVR application builder : 2007-3-22 10:17:15// Target : M16// Crystal: 7.3728Mhz#include#includevoid port_init(void){PORTA = 0x00;DDRA = 0x00;PORTB = 0x00;DDRB = 0x00;PORTC = 0x00; //m103 output onlyDDRC = 0x00;PORTD = 0x00;DDRD = 0x00;}//TIMER0 initialize - prescale:1024// WGM: Normal// desired value: 10mSec// actual value: 9.861mSec (1.4%)void timer0_init(void){TCCR0 = 0x00; //stopTCNT0 = 0xB9; //set countOCR0 = 0x47; //set compareTCCR0 = 0x05; //start timer}#pragma interrupt_handler timer0_ovf_isr:10void timer0_ovf_isr(void){TCNT0 = 0xB9; //reload counter value}//call this routine to initialize all peripheralsvoid init_devices(void){//stop errant interrupts until set upCLI(); //disable all interruptsport_init();timer0_init();MCUCR = 0x00;GICR = 0x00;TIMSK = 0x01; //timer interrupt sourcesSEI(); //re-enable interrupts//all peripherals are now initialized}

上面的程序是由ICC的程序生成向导自动生成的,红色部分是和定时器0相关的,那么现在你可以去查数据手册,TCCR0,TCNT0,OCR0,TCCR0,TIMSK你就可以充分了解定时器的工作原理及控制方法了。

比如:查看TIMSK,描述为

中断屏蔽寄存器- TIMSK

Bit 1 – OCIE0: T/C0 输出比较匹配中断使能

当OCIE0 和状态寄存器的全局中断使能位I 都为”1” 时,T/C0 的输出比较匹配中断使能。 当T/C0 的比较匹配发生,即TIFR 中的OCF0 置位时,中断服务程序得以执行。

Bit 0 – TOIE0: T/C0 溢出中断使能

当TOIE0 和状态寄存器的全局中断使能位I 都为”1” 时,T/C0 的溢出中断使能。当T/C0 发生溢出,即TIFR 中的TOV0 位置位时,中断服务程序得以执行。

可以看出TIMSK = 0x01;说明T/C0 溢出中断使能了,允许寄存器定时溢出中断,这就使得下面这段程序可以运行。

#pragma interrupt_handler timer0_ovf_isr:10void timer0_ovf_isr(void){TCNT0 = 0xB9; //reload counter value}

【更多资源】

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

SanerNow Risk Prioritization依托CISA的SSVC框架,以SecPod著名的漏洞情报为基础而创建,可有效地对漏洞、错误配置和其他安全风险进行优先级排序,并改善网络安全态势。 加利福尼亚州雷德...

关键字: 安全漏洞 SE RIO BSP

(全球TMT2023年9月12日讯)Microland Limited与Serco AsPac宣布建立战略合作伙伴关系,以推动数字化转型,利用云提高业务敏捷性和韧性。Serco AsPac是全球最大的公共服务提供商之一...

关键字: LAN MICRO SE RC

此次合作将专注于提供卓越的数字公共服务、促进业务增长、打造增强的数字体验并加速云采用。 印度班加罗尔2023年9月12日 /美通社/ -- 今日,Microland Lim...

关键字: LAN MICRO 数字化 SE

(全球TMT2023年9月7日讯)思享无限控股有限公司宣布,将以300万美元投资DVCC TECHNOLOGY L.L.C(DVCC),以获取其30%股权。这一重要举措标志着思享无限从移动娱乐向元宇宙生活方式的转变,也...

关键字: DVCC SE RS AI

北京2023年9月6日 /美通社/ -- 思享无限控股有限公司(以下简称:思享无限,纳斯达克股票代码:SJ)对外宣布,将以300万美元投资DVCC TECHNOLOGY L.L.C(以下简称DVCC),以获取其30%股权...

关键字: DVCC TECHNOLOGY SE RS

(全球TMT2023年9月4日讯)当地时间9月1日,荣耀终端有限公司CEO赵明在2023德国柏林消费电子展(Internationale Funkausstellung Berlin,IFA)开幕日发表题为《展开未来(...

关键字: 荣耀 折叠屏手机 SE RS

柏林2023年9月4日 /美通社/ -- 当地时间9月1日,荣耀终端有限公司CEO赵明在2023德国柏林消费电子展(Internationale Funkausstellung Berlin,以下简称IFA)开幕日发表题...

关键字: 荣耀 折叠屏 SE RS

国际酒店运营商升级其在线支付功能 上海2023年8月28日 /美通社/ -- 加拿大金融科技公司Nuvei Corporation(以下简称“Nuvei”或“公司”)(纳斯达克代码:NVEI)(多伦多证券交易所代码:N...

关键字: 代码 IP SE 纳斯达克

韩国济州2023年8月25日 /美通社/ -- 2023年7月25日,TÜV南德意志集团(以下简称"TÜV南德")与HSEwind关于...

关键字: WIND 风力发电机组 SE 海上风电

厦门2023年8月22日 /美通社/ -- 8月22日,全球传感分选领域的引领者——陶朗在厦门举办了其中国区新总部大楼的开业典礼。陶朗中国新总部大楼的正式启用,是其中国区业务不断发展壮大的象征,也体现了陶朗对中国市场长期...

关键字: SE RS 华大 测试
关闭
关闭