打印
[Atmel]

用AtmelStudio6.2跑mega16例程(36)T0控制环型流水灯

[复制链接]
1685|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ddllxxrr|  楼主 | 2014-10-20 21:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ddllxxrr 于 2014-10-21 08:17 编辑

本例是通过查询方式来实现循环显示,while循环检测定时/计数器中断标志寄存器TIFR的最低位TOV0是否为1,在溢出时TOV0被置位,通过写1可将其清零.
PROTEUS仿真:

Studio6.2截图:


程序:
/*
* GccApplication22.c
*
* Created: 2014-10-20 21:27:55
*  Author: Administrator
*/
#define F_CPU 4000000UL
#include <avr/io.h>
#include <stdint.h>

uint16_t Pattern = 0xFFFE;

int main(void)
{
    DDRC = 0xFF;DDRD = 0xFF;
        PORTC = 0xFF;PORTD = 0xFF;
        TCCR0 = 0x05;  //预分频1024
        TCNT0 = 256 - F_CPU/1024.0*0.05; //晶振4MHz,0.05 s
        
        while(1)
    {
        while(!(TIFR&_BV(TOV0)));
                TIFR = _BV(TOV0);  //通过对TOV0写1实现软件清零
               
                TCNT0 = 256 - F_CPU/1024.0*0.05;
               
                PORTC = (uint8_t)Pattern;
                PORTD = (uint8_t)(Pattern>>8);
               
                Pattern = Pattern << 1 | 0x001;
                if(Pattern == 0xFFFF) Pattern = 0xFFFE;
    }
}


相关帖子

沙发
yklstudent| | 2014-10-21 09:14 | 只看该作者
版主真是用心良苦,这么卖力的宣传AVR与GCC。
只可惜好久不高AVR了,不过还是挺喜欢使用AVRGCC编译器的

使用特权

评论回复
板凳
ddllxxrr|  楼主 | 2014-10-21 12:12 | 只看该作者
yklstudent 发表于 2014-10-21 09:14
版主真是用心良苦,这么卖力的宣传AVR与GCC。
只可惜好久不高AVR了,不过还是挺喜欢使用AVRGCC编译器的
...

恩,楼上用PIC????

使用特权

评论回复
地板
yklstudent| | 2014-10-21 12:16 | 只看该作者
ddllxxrr 发表于 2014-10-21 12:12
恩,楼上用PIC????

恩,目前一直主要使用PIC

使用特权

评论回复
5
ddllxxrr|  楼主 | 2014-10-21 14:09 | 只看该作者
yklstudent 发表于 2014-10-21 12:16
恩,目前一直主要使用PIC

:handshake

使用特权

评论回复
6
车彦锋| | 2014-10-21 14:22 | 只看该作者

使用特权

评论回复
7
qinjunfa| | 2014-10-21 16:16 | 只看该作者
我们用Atmel8的

使用特权

评论回复
8
ddllxxrr|  楼主 | 2014-10-21 21:24 | 只看该作者
qinjunfa 发表于 2014-10-21 16:16
我们用Atmel8的

差不多一样地,只不过FLASH小些

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2399

主题

6971

帖子

68

粉丝