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

📄 main.c

📁 基于tsm32vc5402芯片的dsp程序
💻 C
字号:
#include "cpu_reg.h"

int ms,f;
int data;
unsigned int *prdd;

void main()
{
	  ms=0;
	  prdd=PRDDATA;
     asm("  STM #0000h,CLKMD ");  
     while(*CLKMD & 0x01 );
     asm("  STM #40C7h,CLKMD ");  //设置CPU运行频率=100M p168
/*  40C7h:5*clkin  =100M
    30c7h:4*clkin  =80M
    20c7h:3*clkin  =60M
    10C7h:2*clkin  =40M
*/
     asm("  stm   #4240h, SWWSR ");
     //2 wait except for on-chip program 1
     asm("  stm   #00a0h, PMST  "); //MP/MC = 0, IPTR = 001,ovly=0  
     asm("  stm   #0802h, BSCR  "); 
     asm("  STM #0h,IMR ");
     
     asm("  STM #0010h,TCR  "); //关定时器
     asm("  STM #000eh,PRD  ");//设定在7M中间
     asm("  STM #0C20h,TCR  "); //TCR=最后四位
     asm("  STM #0008h,IFR  ");
     asm("  ORM #0008h,*(IMR) ");/*开时间中断*/
 
     asm("  RSBX  INTM ");      /*开中断*/ 

     
/*     f=2;
     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++;
 //asm("  RSBX  XF ");
  if(ms==0)
  	{
	ms=1;
	asm("  SSBX  XF ");
  	}
  if(ms==1)
  	{
	ms=0;
	asm("  RSBX  XF ");
  	}
}

interrupt void hpi_inter()
{
	data=*GETDATA;
	asm("  STM #0010h,TCR ");//关定时器
	asm("	 MVMD PRD,0x01f0 ");
	switch(data)
	  {
	  case 01:{*prdd=*prdd+1;break;}
	  case 02:{*prdd=*prdd-1;break;}
	  case 03:{*prdd=*prdd+0x0A;break;}
	  case 04:{*prdd=*prdd-0x0a;break;}
	  default:break;
	  }
	asm("	 MVDM 0x01f0,PRD ");
	asm("  STM #0C20h,TCR  ");
}


⌨️ 快捷键说明

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