main.c

来自「包括DSP实验测试程序、实验示例、应用程序以及经典的DSP的C程序和汇编程序库」· C语言 代码 · 共 70 行

C
70
字号
#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;
       

     asm("  STM #0000h,CLKMD ");  
     while(*CLKMD & 0x01 );
     asm("  STM #40c7h,CLKMD ");
     
     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<500/f);     //LED_flash
       ms=0;
       asm("  RSBX  XF ");       
       while(ms<500/f);
       ms=0;
       asm("  SSBX  XF ");       
     }
}  


interrupt void  timer0()
{
     ms++;
}

⌨️ 快捷键说明

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