⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 time01.c

📁 一个基于周立功EASYARM2000平台的一个小程序 定时器来实现蜂鸣器的开关 各0.5s
💻 C
字号:
#include "config.h"

#define BEEPCON  1<<7


void delay (uint32 dly)
  {uint32 i;

     for (;dly>0;dly--)
     for (i=0;i<5000;i++);
  }
    
void __irq IRQ_Time0(void)    
{
    IO0CLR=BEEPCON;
    
    T0IR=0x01;                         //清除中断标志
       
    VICVectAddr=0x00;                  //通知VIC中断处理结束    
}  
    
    
void __irq IRQ_Time1(void)    
{
    IO0SET=BEEPCON;
    
    T1IR=0x01;                         //清除中断标志
       
    VICVectAddr=0x00;                  //通知VIC中断处理结束    
}     
/************************************************************/

void Time0Init(void)
{
    T0PR=99;                     //设置定时器0分频为100分频,得110592Hz
    
    T0MCR=0x03;                  //匹配通道0匹配中断并复位T0TC
    
    T0MR0=110592;             //比较值(1s定时值)
    
    T0TCR=0x03;             //启动并复位T0TC
    
    T0TCR=0x01;   
 
 
    VICIntSelect=0x00;
    
    VICVectCntl0=(1<<5)|4;
    
    VICVectAddr0=(uint32)IRQ_Time0; 
    
    VICIntEnable=0x00000030;
 }
    
 void Time1Init(void)
{
    T1PR=99;               //设置定时器0分频为100分频,得110592Hz
    
    T1MCR=0x03;          //匹配通道0匹配中断并复位T0TC
    
    T1MR0=110592;           //比较值(1s定时值)
    
    T1TCR=0x03;           //启动并复位T0TC
    
    T1TCR=0x01; 
 
 
    VICIntSelect=0x00;
    
    VICVectCntl1=(1<<5)|5;
    
    VICVectAddr1=(uint32)IRQ_Time1;
    
    VICIntEnable=0x00000030;
 }   
/*************************************************************/
    


int main(void)
{
    PINSEL0=0x00000000;
    
    IO0DIR=BEEPCON;
    
    Time0Init();
    
    delay(5);
    
    Time1Init();
    
   while(1);                     //等待定时器0中断或定时器1匹配输出
    
    return(0);    
 
    
}
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    
      
 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -