|
/*AVR16位定時(shí)器1普通定時(shí)實(shí)驗(yàn) 天津第四項(xiàng)目部宿舍 */
#include <iom16v.h>
#define uchar unsigned char
#define uint unsigned int
#define set_bit(a,b) a|=(1<<b)
#define clr_bit(a,b) a&=(1<<b)
#define get_bit(a,b) a&(1<<b)
uint i;
#pragma interrupt_handler time1_isr:9
void time1_isr()//定時(shí)計(jì)數(shù)器1溢出中斷
{
i++;
if(i==10)
{
PORTC^=0x40;//輸出方波T=80*2=160毫秒
i=0;
}
TCNT0=0; //重裝計(jì)數(shù)器初值
}
void int_time1()//定時(shí)器0設(shè)置初始化
{
SREG=0x80;//開啟全局中斷
TCNT1=0;//這里我采用RC震蕩8M時(shí)鐘,1分頻后周期是0.125微秒,計(jì)數(shù)為65536-0=65536次所以就=65536*0.125=8.192微秒,中斷一次是8.192微秒
TIMSK=0x04;//開啟定時(shí)器1溢出中斷
TCCR1A=0x00;//工作在普通模式,
TCCR1B=0x01;//工作在內(nèi)部8M時(shí)鐘1分頻,普通模式
}
void main()
{
DDRC=0xff;
PORTC=0;
int_time1();
while(1);
}
|
|