查看: 208|回复: 3
打印 上一主题 下一主题

AVR学习日志(三)Timer0

[复制链接] qrcode

4

主题

10

帖子

26

积分

新手上路

Rank: 1

积分
26
楼主
跳转到指定楼层
发表于 2015-11-1 10:28 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//ICC-AVR application builder : 2010-11-1 20:57:36
// Target : M8
// Crystal: 1.0000Mhz
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define LED_N 10 //10位显示
//----------------------------------
#define Bit(n) (1<//LED_RUN
#define led_on() PORTD&=~Bit(PD3)
#define led_off() PORTD|=Bit(PD3)
#define led_run() PORTD^=Bit(PD3)
//定义74HC595时钟、数据、锁存、使能引脚状态
#define CLK_H() PORTB|=BIT(PB6)
#define CLK_L() PORTB&=~BIT(PB6)
#define DAT_H() PORTB|=BIT(PB7)
#define DAT_L() PORTB&=~BIT(PB7)
#define RCK_H() PORTB|=BIT(PB2)
#define RCK_L() PORTB&=~BIT(PB2)
#define ENA_H() PORTB|=BIT(PB1)
#define ENA_L() PORTB&=~BIT(PB1)

//0, 1, 2, 3, 4, 5 , 6, 7, 8, 9, A, B, C, D, E, F
const uchar led_array[27]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,
//- dark S H Y E n , P , L , ,r25 ,o26
0xbf,0xff,0x92,0x89,0x91,0x86,0xab,0x8c,0xc7,0xaf,0xa3}; //共阳管
uchar Led_Set_buf[LED_N];
uint count;
/****************************************************************
//函数名称:delay_1ms(void)
//功 能:延时1ms
//入口参数:无
//出口参数:无
//说明:for(i=1;i<(unsigned int)(xtal*143-2_;i++)xtal为晶振频率,单位为MHz。
*****************************************************************/
void delay_1ms()//1ms
{
uint i;
for(i=1;i<(uint)(1*143-2);i++);
}
/****************************************************************
//函数名称:delay_ms(uint time)
//功 能:延时time ms
//入口参数:time
//出口参数:无
*****************************************************************/
void delay_ms(uint time)//time*1ms
{
uint i;
while(i {
delay_1ms();
i++;
}
}
//************************************************************
void port_init(void)
{
PORTB = 0xFF;
DDRB = 0xff;//设为输出
PORTC = 0x00; //m103 output only
DDRC = 0x00;
PORTD = 0xFF;
DDRD = 0xff;//设为输出
}
/****************************************************************
//函数名称:init_devices(void)
//功 能:初始化器件
//入口参数:无
//出口参数:无
*****************************************************************/
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();
MCUCR = 0x00; //
GICR = 0x00; //
TCCR0|=(1< TCNT0 = 0xFC;
TIMSK|= (1<
SEI(); //re-enable interrupts
}
/****************************************************************
//函数名称:timer0_ovf_isr(void)
//功 能:Timer0中断处理函数
//入口参数:无
//出口参数:无
*****************************************************************/
#pragma interrupt_handler timer0_ovf_isr:iv_TIM0_OVF
void timer0_ovf_isr(void)
{
TIMSK&=(1< TCNT0 = 0xFC; //reload counter value
count++;
if(count==500)
{
led_run();
count="0";
}

TIMSK|=(1<}
/****************************************************************
//函数名称:LED_disp(void)
//功 能:74HC595送数
//入口参数:无
//出口参数:无
*****************************************************************/
void LED_disp(void)
{
uchar i,a, b,c,led_bit;
uchar disbuf[LED_N];
for( i="0";i {
disbuf[i]=Led_Set_buf[i];
}
ENA_L();
RCK_L();
for(a=0;a {
c = disbuf[a];
led_bit = led_array[c];

for(b=0;b<8;b++)
{
CLK_L();
if(led_bit & 0x80)
DAT_H();
else DAT_L();
led_bit <<= 1;
CLK_H();
CLK_L();
}
}
RCK_H();
RCK_L();
}
//---------------------------------
void main(void)
{
uchar i;

delay_ms(200);
init_devices();

for(i=0;i {
Led_Set_buf[i]=5; //装载 5555555555 显示
}
while(1)
{

LED_disp();
}
}
回复

使用道具 举报

136

主题

868

帖子

1880

积分

金牌会员

Rank: 6Rank: 6

积分
1880
沙发
发表于 2015-11-2 10:37 AM | 只看该作者
那位大哥共享个初值计算的小工具咯!!                                                                                                                                                                       
回复 支持 反对

使用道具 举报

4

主题

10

帖子

26

积分

新手上路

Rank: 1

积分
26
板凳
 楼主| 发表于 2015-12-19 12:36 PM | 只看该作者
ICCAVR就有这个功能                                                                                                                                                                       
回复 支持 反对

使用道具 举报

136

主题

868

帖子

1880

积分

金牌会员

Rank: 6Rank: 6

积分
1880
地板
发表于 2015-12-19 01:45 PM | 只看该作者
加油呀^_^                                                                                                                                                                       
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表