main.c

来自「dsp上的c语言主程序语言,」· C语言 代码 · 共 81 行

C
81
字号
/*************************************
  Copyright 2001 by Haia Tech
  海佳科技有限公司
  www.haia2004.com
  Email:haia2004@vip.sina.com
  Tel:0731-4552122 4553216
*************************************/
#include "cpu_reg.h"
#include "common.h"
#include "string.h"


int ms,f=1;
int DA_wptr,DA_rptr,y;
int play_mode;

void main()
{

     unsigned int temp,i,j;
       

     asm("  STM #0000h,CLKMD ");  
     while(*CLKMD & 0x01 );
     asm("  STM #50c7h,CLKMD ");
/*  40c7h:5*clkin  =60
    50c7h:6*clkin  =101M
    8107h:9*clkin  =108
    7107h:8*clkin  =96
*/
     asm("  stm   #4240h, SWWSR ");
     //2 wait except for on-chip program 1
     asm("  stm   #00a0h, PMST  "); //MP/MC = 0, IPTR = 001,ovly=1  
     asm("  stm   #0802h, BSCR  "); 
     asm("  STM #0h,IMR ");
     
     asm("  STM #0010h,TCR  "); //关定时器
     asm("  STM #0186ah,PRD  ");//1ms
     asm("  STM #0C2fh,TCR  "); //TCR=最后四位
     asm("  STM #0008h,IFR  ");
     asm("  ORM #0008h,*(IMR) ");/*开时间中断*/
 
     DA_wptr=0;
     DA_rptr=0;
     
     McBsp0_init();             //串口初始化
     
     asm("  RSBX  INTM ");      /*开中断*/ 
     
     play_mode= 0;              //发警报声
     
     for(temp=30000;temp>0;temp-=100)
       for(i=0;i<2;i++)
       {
         y=5000;       
         delay(temp);
         y=-5000;       
         delay(temp);
       }

     play_mode=1;              //发话筒音
     
     ms=0;
     while(1)
     {
       while(ms<10000/f);     //LED_flash
       ms=0;
       asm("  RSBX  XF ");       
       while(ms<10000/f);
       ms=0;
       asm("  SSBX  XF ");       
     }
}  


interrupt void  timer0()
{
     ms++;
}

⌨️ 快捷键说明

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